博客
关于我
Copy攻城狮信手”粘“来 AI 对对联
阅读量:798 次
发布时间:2019-03-25

本文共 1753 字,大约阅读时间需要 5 分钟。

ModelArts AI 对对联 模型开发 实践教程

环境准备

ModelArts 是面向开发者的一站式 AI 开发平台,在数据处理、算法选择和算力支持方面均有强大功能。特别值得一提的是其「我的笔记本」功能,这是一个基于 JupyterLab 的开发环境,便于用户在云端快速开展 AI 项目。

注册与配置

注册华为云账号并完成实名认证后,可以通过【开发工具】卡片(位于 ModelArts 主页底部)进入默认的 CPU 环境 JupyterLab。需要注意的是,切换不同资源规格会导致 Notebook 中变量和安装包的有效性受到影响,建议每次切换时重新启动 Terminal。

ModelArts 提供多种环境配置,包括 Conda-python3、PyTorch-1.0.0 和 TensorFlow-1.13.1 等。对于 GPU 环境用户需注意以下事项:

  • 免费规格的-hourly停用
  • 免费算力不包含对象存储服务(OBS)存储资源费用
  • 如果需要使用 MindSpore 框架,可以通过教程链接跳转到支持 MindSpore 的 JupyterLab 环境。


    简介

    Transformers 是 Google于2017年开源的深度学习框架,主要用于机器翻译、文本摘要、图像描述等任务。核心技术包括通用的编码器-解码器架构,基于注意力机制的特点使其在 NLP领域具有广泛应用。

    论文地址:arxiv.org/abs/1703.03906


    Copy 实践

    新建一个 TensorFlow 1.13.1 环境的 Jupyter Notebook 文件,开始你的对对联模型开发之旅。

    数据处理

    首先,下载对对联数据集。你可以通过以下代码进行操作:

    !wget https://github.com/wb14123/couplet-dataset/releases/download/1.0/couplet.tar.gz!tar -xzvf couplet.tar.gz!mkdir couplet/model

    接下来,安装依赖项并导入必要的库:

    !pip install klab-autotime backcall
    import codecsimport numpy as npfrom keras.models import Modelfrom keras.layers import *from keras.callbacks import Callback
    # 使用GPUimport osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"  # 设置 GPU IDos.environ["CUDA_VISIBLE_DEVICES"] = "0"    # 选择要激活的 GPU

    模型定义

    定义一个门控残差网络作为对联生成模型:

    from keras.initializers import RandomUniformdef gated_resnet(x, ksize=3):    x_dim = int(K.int_shape(x)[-1])    xo = Conv1D(x_dim*2, ksize, padding='same')(x)    return Lambda(lambda x: x[0] * K.sigmoid(x[1][..., :x_dim]) + x[1][..., x_dim:] * K.sigmoid(-x[1][..., :x_dim]))([x, xo])

    训练与测试

    训练过程会自动生成对对联对应的下联示例,测试阶段可以通过上联输入生成对应的下联。以下是训练后的效果展示:

    • 上联:天增岁月人增寿
    • 下联:国满春秋我成春

    同样,针对传统对联:

    • 上联:鼠去牛来闻虎啸
    • 下联:羊来马去看龙吟

    此外,还有以下样例:

    • 上联:流光溢彩气冲斗牛
    • 下联:春色流辉风震春虫

    小程序推荐

    华为云开发了AI写春联的小程序,采用 GPT 模型通过云端预训练,基于公开对联数据进行微调,可自动生成对联创作。扫描小程序二维码即可体验更多创意。


    本文内容创作于 ModelArts 开源项目框架下,结合个人实践经验分享,愿与各位AI爱好者交流探讨!

    转载地址:http://afnyk.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 基于OpenCV实现模糊检测 / 自动对焦
    查看>>
    OpenCV与AI深度学习 | 基于Python和OpenCV将图像转为ASCII艺术效果
    查看>>
    OpenCV与AI深度学习 | 基于PyTorch实现Faster RCNN目标检测
    查看>>
    OpenCV与AI深度学习 | 基于PyTorch语义分割实现洪水识别(数据集 + 源码)
    查看>>
    OpenCV与AI深度学习 | 基于YOLO11的车体部件检测与分割
    查看>>
    OpenCV与AI深度学习 | 基于YoloV11自定义数据集实现车辆事故检测(有源码,建议收藏!)
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8 + BotSORT实现球员和足球检测与跟踪 (步骤 + 源码)
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8实现高级目标检测和区域计数
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
    查看>>
    OpenCV与AI深度学习 | 基于YoloV8的药丸/片剂类型识别
    查看>>
    OpenCV与AI深度学习 | 基于YOLO和EasyOCR从视频中识别车牌
    查看>>
    OpenCV与AI深度学习 | 基于图像处理的火焰检测算法(颜色+边缘)
    查看>>
    OpenCV与AI深度学习 | 基于拉普拉斯金字塔实现图像融合(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案
    查看>>
    OpenCV与AI深度学习 | 基于深度学习的轮胎缺陷检测系统
    查看>>
    OpenCV与AI深度学习 | 如何使用YOLO-World做目标检测
    查看>>
    OpenCV与AI深度学习 | 如何使用YOLOv9分割图像中的对象
    查看>>
    OpenCV与AI深度学习 | 如何使用YOLOv9检测图片和视频中的目标
    查看>>
    OpenCV与AI深度学习 | 如何在 Docker 容器中使用 GPU
    查看>>
    OpenCV与AI深度学习 | 实战 | OpenCV中更稳更快的找圆方法--EdgeDrawing使用演示(详细步骤 + 代码)
    查看>>