摘要:农历新年将至,听说华为云 AI 又将开启智能对对联迎接牛气冲天,让我们拭目以待!作为资深 Copy 攻城狮,想要自己实现一个对对联的模型,是不能可能完成的任务,因此我搜罗了不少前人的实践案例,今天想和大家分享的是 和鲸社区的 rua年糕 贡献的项目-AI 对联,基于 ModelArts 的 「我的笔记本」实现。

华为云EI专家胡琦

一、环境准备

准备环境前,先唠叨几句:ModelArts 是面向开发者的一站式AI开发平台,ModelArts 在人工智能三要素中都有非常出色的表现,数据方面提供海量数据预处理及半自动化标注,算法方面除了开发者自己开发还=提供大量的预置算法和订阅算法可供选择,算力方面目前开发环境提供免费算力以及即点即用的「我的笔记本」。目前个人比较中意的功能就是「我的笔记本」,如果您体验过 MindSpore 教程的 「Run in ModelArts」,您会发现其实教程中链接的就是 ModelArts 的 「我的笔记本」模块,具体体验可阅读我的历史文章5分钟在线体验MindSpore的图层IR--MindIR。

相比常规的开发先要装一堆的环境和软件,基于 ModelArts 的 AI 开发似乎变得更简单,理论上有能上网的设备就够了,比如 pad,然后仅仅需要注册一个华为云账号并实名认证。当然,ModelArts准备工作并不仅仅是这些,比如如需用到 OBS 还需生成访问密钥并完成 ModelArts 全局配置。具体操作请参考ModelArts-Lab:https://gitee.com/ModelArts/ModelArts-Lab。

Free 的「我的笔记本」就在 ModelArts 总览页底部的开发工具卡片中,点击「立即体验」即可开启一个默认的 CPU 环境的 JupyterLab,我们可以在右边的「切换规格」栏进行环境或者规格的切换。需要注意的是:切换资源后,将影响实例下所有Notebook与Terminal。Notebook中执行的所有变量将失效,Terminal需要重新打开,手动安装包不再生效,需要重新执行。 目前, CPU 和 GPU 环境支持 Conda-python3 、Pytorch-1.0.0、TensorFlow-1.13.1等8种Notebook环境,不过使用 GPU 需要注意:1、免费规格用于使用体验,会在1小时后自动停止;2、免费算力不包含对象存储服务(OBS)存储资源费用。 如果想使用 MindSpore 框架,可以从 MindSpore 官方文档教程中的 「Run in ModelArts」进行跳转到带有 MindSpore 框架的 JupyterLab。

二、Seq2Seq 简介

Seq2Seq是 Google 在 2017年开源的一款用于 TensorFlow 的通用编码器&解码器框架(encoder-decoder framework),可用于机器翻译、文本摘要、会话建模、图像描述等。

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

三、Copy 实践

新建 TensorFlow 1.13.1 环境的 notebook 文件,开始代码编(kao)写(bei)。

  • 数据集下载

couplet-dataset 尽管比较陈旧,但拥有 70 万条数据,应该够实现一个简单的对对联模型。

!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
!pip install backcall
import codecs
import numpy as np
from keras.models import Model
from keras.layers import *
from keras.callbacks import Callback
# 显示cell运行时长
%load_ext klab-autotime# 使用GPU
import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
# The GPU id to use, usually either "0" or "1"
os.environ["CUDA_VISIBLE_DEVICES"]="0" 
  • 数据处理

# 定义参数
min_count = 2
maxlen = 16
batch_size = 64
char_size = 128
train_input_path = 'couplet/train/in.txt'
train_output_path = 'couplet/train/out.txt'
test_input_path = 'couplet/test/in.txt'
test_output_path = 'couplet/test/out.txt'
# 数据读取与切分
def read_data(txtname):txt = codecs.open(txtname, encoding='utf-8').readlines()txt = [line.strip().split(' ') for line in txt]      # 每行按空格切分txt = [line for line in txt if len(line) <= maxlen]  # 过滤掉字数超过maxlen的对联return txt
  • 模型定义

def gated_resnet(x, ksize=3):# 门卷积 + 残差x_dim = 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])x_in = Input(shape=(None,))
x = x_in
x = Embedding(len(chars)+1, char_size)(x)
x = Dropout(0.25)(x)x = gated_resnet(x)
x = gated_resnet(x)
x = gated_resnet(x)
x = gated_resnet(x)
x = gated_resnet(x)
x = gated_resnet(x)x = Dense(len(chars)+1, activation='softmax')(x)

其他代码此处就不再贴了,建议直接参考源码出处,或者访问https://github.com/hu-qi/modelarts-couplet。此处我选择 200 个 Epoch,训练过程如下图:

从图中明显可以看出评估函数输出的下联不断地在调整。当训练完成之后我们便炼的了简单能使用的丹--AI 对对联模型,紧接着测试一下:

上联:天增岁月人增寿
下联:国满春秋我成春
上联:鼠去牛来闻虎啸
下联:羊来马去看龙吟
上联:流光溢彩气冲斗牛
下联:春色流辉风震春虫

不错不错,还是挺工整通顺的!

当然实践中也并不是一帆风顺,训练过程中如果遇到续期提示,请务必要手动点击,不然又得重启 Notebook 。续期就对了,尽管我不太清除能续几次,但续期就不会导致训练中断。

四、总结

此次实践的数据集和 notebook 已上传到 github :https://github.com/hu-qi/modelarts-couplet, 另外对联数据也共享到 ModelArts AI Gallery:couplet-dataset:70万对联数据集,欢迎取阅!

点击关注,第一时间了解华为云新鲜技术~

智能对联模型太难完成?华为云ModelArts助你实现!手把手教学相关推荐

  1. 物联网设备上云难?华为云IoT帮你一键完成模型定义,快速在线调试设备

    摘要:在不到3分钟的操作里,不仅完成了一款智慧烟感设备在云端的模型定义,还通过在线调试了解到了设备和远端通信的过程. 本文分享自华为云社区<物联网设备上云难?华为云IoT帮你一键完成模型定义,快 ...

  2. 跑道防侵入,华为云ModelArts平台助力航空器识别AI模型开发

    上海麦图信息科技有限公司,借助华为云ModelArts一站式AI开发与管理平台,开发出跑道防侵入场景中的航空器识别AI模型. 近年来,"AI的应用和落地"逐渐成了具化的关键词,它和 ...

  3. HDC.Cloud2021|华为云ModelArts Pro,让行业AI开发不再难

    去年,在华为开发者大会2020(Cloud)期间, 华为云发布了ModelArts Pro AI 应用开发套件,包括了视觉套件,文字识别套件,自然语言处理套件等. 经过一年的发展,华为云通过Model ...

  4. 华为云ModelArts肺部X射线图片识别肺炎模型训练

    ModelArts是面向AI开发者的一站式开发平台,提供海量数据预处理及半自动化标注.大规模分布式训练.自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流. ...

  5. 斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快

    斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快 近日,斯坦福大学发布了DAWNBenchmark最新成绩,在图像识别(ResNet50-on-ImageNet,93%以上精度) ...

  6. 华为云ModelArts 2.0全面升级,革新传统AI开发模式

    [中国,上海,9月20日] 在HUAWEI CONNECT 2019期间,华为云EI服务产品部总经理贾永利宣布--华为云AI重装升级,并重磅发布一站式AI开发管理平台ModelArts 2.0. 现场 ...

  7. 斯坦福DAWNBench最新训练排名!华为云ModelArts用时10分28秒获全球最快

    允中 发自 凹非寺  量子位 报道 | 公众号 QbitAI 还记得ModelArts吗? 这是今年华为最新发布的AI开发平台,可以提供包括数据标注准备.模型训练.模型调优.模型部署等AI应用开发服务 ...

  8. 华为云ModelArts获得中国信通院首批AI开发平台全能力域领先级证书

    近日,由中国人工智能产业发展联盟(AIIA)指导.中国信息通信研究院云计算与大数据研究所主办的2021可信AI成果发布会在线上举行.会上,主办方公布了人工智能开发平台功能评测结果,在产品能力赛道,华为 ...

  9. 自动驾驶轻松开发?华为云ModelArts赋能智慧出行

    作为战略新兴产业,人工智能已经开始广泛应用于多个领域.近几年,科技公司.互联网公司等各领域的企业纷纷布局自动驾驶.那么,自动驾驶技术究竟发展得如何了?日前,华为云携手上海交通大学创新中心举办的华为云人 ...

最新文章

  1. 【转】超简单利用UGUI制作圆形小地图
  2. 归纳工作中用到的Linux 命令
  3. exchange 2007 碰到NDR
  4. 纯前端CSS实现动态太极阴阳鱼效果
  5. 机器学习、人工智能 博文链接汇总
  6. Activity的常用方法和生命周期
  7. 在ASP.NET Core微服务架构下使用数据库切分和扩展
  8. 清华北大的学子们都关注什么样公众号?
  9. 中国节能吊扇行业市场供需与战略研究报告
  10. docker非常详细的介绍
  11. 类的加载过程详解之过程三:Initialization(初始化)阶段
  12. 漫威 DC 英雄综合实力排位,这人秒杀灭霸
  13. 微软live服务器地址,在Mail中设置windows Live hotmail方法
  14. 原生API实现视频画中画模式
  15. 如何将.hwbk批量修改成.jpg 【实测成功】
  16. 自适应模糊神经网络的设计
  17. Mysql下更改数据库密码
  18. C语言做线性分析,C语言版的线性回归分析函数
  19. SQL语言基础教学 | Mysql 入门教学
  20. 测试2k显示器的软件,高性价比的27吋2K显示器 AOC Q27P1U评测

热门文章

  1. HTML5 画布变换
  2. CSS 文本缩进text-indent属性
  3. python2048小游戏程序设计大作业_C语言大作业报告——2048小游戏程序
  4. 如何通过域名访问服务器里的文件,如何通过域名访问云服务器
  5. 普通话计算机测试题,计算机辅助普通话测试常见问题回答(范文).docx
  6. 杜比dss200服务器重装,杜比数字影片库 DSL200 (Dolby Show Library DSL200)
  7. vue手势滚动_vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
  8. python内建函数是什么意思_python内建函数是什么意思
  9. java获取客服列表,java-从列表中获取处理案例的服务
  10. SpringMVC(二)高级