当前位置:网站首页>基于ModelArts续写最伟大的作品【玩转华为云】
基于ModelArts续写最伟大的作品【玩转华为云】
2022-07-28 09:54:00 【华为云】
前言
前段时间,杰伦终于发布了新专辑,直接把好听打在公屏上!杰伦时隔6年的新专辑《最伟大的作品》日前大范围刷屏,我觉得简直YYDS(“永远的神”)。于是乎,我有了一个大胆的想法,我把他新专辑的几首歌生成了一个词云(特地用的形状),然后想用AI根据杰伦的风格和歌词的热词生成一种类似于他风格的歌曲,话不多说,开造。

《最伟大的作品》词云
1.准备数据
这里我导入了杰伦新专辑中的三首歌《最伟大的作品》、《粉色海洋》、《还在流浪》,歌词数据集如下:

2.读取数据
找到控制台里的modelarts:入口

新建一个notebook,选择最低的配置2核4G就行,大概费用是0.8/小时,注意使用完结束运行,不然就会和我一样白白扣了很多钱!!!!
创建成功后是这样的,然后启动打开即可

新建一个Pytorch-1.0.0,开始跑代码


输出结果为:

3.数据预处理
将处理完的数据写入内存并将杰伦的歌词文本转换完整数

4.构建神经网络
导入依赖包并检测是否用GPU进行训练

构建输入层

构建堆叠的RNN单元

Word Embedding
模型中加入Embedding层来降低输入词的维度

通俗来说:就是给出一个文档,文档就是一个单词序列比如 “A B A C B F G”, 希望对文档中每个不同的单词都得到一个对应的向量(往往是低维向量)表示。比如,对于这样的“A B A C B F G”的一个序列,也许我们最后能得到:A对应的向量为[0.1 0.6 -0.5],B对应的向量为[-0.2 0.9 0.7] (此处的数值只用于示意)
之所以希望把每个单词变成一个向量,目的还是为了方便计算,比如“求单词A的同义词”,就可以通过“求与单词A在cos距离下最相似的向量”来做到。
构建神经网络,将RNN层与全连接层相连
参数:
---
cell: RNN单元
rnn_size: RNN隐层结点数量
input_data: input tensor
vocab_size
embed_dim: 嵌入层大小

5.构造batch
在这里,我们将采用以下方式进行batch的构造,如果我们有一个1-20的序列,传入参数batch_size=3, seq_length=2的话,希望返回以下一个四维的向量。分为了三个batch,每个batch中包含了输入和对应的目标输出。例如: get_batches([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], 3, 2)

6.模型训练
定义好模型的输入参数

开始训练

打印结果保存模型

训练结果输出,共82个epoch

获取模型训练结果

歌词数据生成

输出结果

emmmm,生成了如下的歌词,客观评价,感觉一般,还有待优化哈哈哈哈哈哈!最后,如果你喜欢听杰伦的歌,我们就是朋友!

总结
本篇文章是基于词粒度对RNN进行训练,文本采用中文歌词的分词文本。模型中加入Embedding层来降低输入词的维度。同时了解到了Embedding的强大功能,通过查询资料了解其原理:首先计算机不认识这几个字,我们要用数字表示这几个字,常用方式可以通过枚举取出对应的KEY作为映射的数字。假设我们按照字划分最终得到的结果:【“我”,“爱”,“你”,“中”,“国”】映射成数字是【2,3,4,5,6】,结果是个一维的向量。现在想做词嵌入,每一个字用3维的向量表示结果如下:
【【0.9212,0.1181,0.4291】,代表“我”
【0.4388,0.6217,0.4416】,代表“爱”
…………】
每一个字都用一个向量来表示,向量里面的每一个数字表示一个描述该字的特征。在维度上面从原来的一维 1*5 变成了二维,形成了5*3的一个矩阵,5代表5个词,3代表每个词用3个数字特征表示。生成杰伦的歌词的原理就是这个,不过此次模型有待优化,歌词不够押韵,后面继续学习。
参考文献
pr0d1gy :哎哟不错哦ModelArts教你写歌
边栏推荐
- PHP 基础
- 高温持续,公交企业开展安全专项培训
- office2013以上输入数学公式
- OSPF的拓展配置,选路原则,防环及重发布
- 【JZOF】15二进制中1的位数
- [ESP32][esp-idf] AP+STA实现无线桥接 中转wifi信号
- Include and require include_ Once and require_ Once difference
- In retaliation for the dismissal of the company, I changed all code comments of the project!
- 7.27 minimum spanning tree phased test problem solution
- ES(8.1)认证题目
猜你喜欢
随机推荐
Experiment 4 uses fdisk to manage hard disk
LinkedList源码按摩,啊舒服
这种动态规划你见过吗——状态机动态规划之股票问题(中)
The blind box of super primitive series will be launched soon, and platofarm will enable more rights and interests
Thinking and summary of technical personnel | R & D Efficiency
Edge team explains how to improve the comprehensive performance experience through disk cache compression technology
ES (8.1) certification topic
In php7?? And?: Differences between
(十)defer关键字
高温天气筑牢安全生产防线,广州海珠区开展加油站应急演练
【JS高级】js之函数、重载、匿名函数、作用域及作用域链_03
Time series analysis 41 - time series prediction tbats model
The high temperature continues, and public transport enterprises carry out special safety training
[ESP32][esp-idf] AP+STA实现无线桥接 中转wifi信号
Array method of J S, loop
Joint search set
ES(8.1)认证题目
OSPF的不规则区域,LSA和序列号
【Gradle】This version of the JMH Gradle plugin requires Gradle 6+, you are using 6.6.
Deepin 下安装 LAMP









