当前位置:网站首页>基于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教你写歌
边栏推荐
- Database advanced learning notes -- storage functions
- On July 13, 2021, we collapsed like this
- LSA and optimization of OSPF
- Introduction to evaluatorfilter
- ASP.NET Core 6框架揭秘实例演示[29]:搭建文件服务器
- 2022 uni app parsing token standard - use jsrsasign - climb the pit
- 工业品MRO采购网站有哪些优势?一文带你读懂
- 【MySQL】Got an error reading communication packets
- 备受关注的Bit.Store,最新动态一览
- Seektiger eco pass STI new progress, log in to ZB on April 14
猜你喜欢

21. 合并两个有序链表

工业品MRO采购网站有哪些优势?一文带你读懂

OSPF expansion configuration, routing principles, anti ring and re release

Basic examples that must be mastered by beginners of C #

OSPF的拓展配置,选路原则,防环及重发布

Flink - checkpoint Failure reason: Not all required tasks are currently running

2022-uni-app解析token标准的方式-使用jsrsasign-爬坑过了

B2B2C系统亮点是什么?如何助力珠宝首饰企业打造全渠道多商户商城管理体系
JWT login authentication + token automatic renewal scheme, well written!
![[openharmony] [rk2206] build openharmony compiler (2)](/img/0c/2e8290403d64ec43d192969f776724.png)
[openharmony] [rk2206] build openharmony compiler (2)
随机推荐
Set of bus related concepts
office2013以上输入数学公式
能够遍历一个文件夹下的所有文件和子文件夹
高温天气筑牢安全生产防线,广州海珠区开展加油站应急演练
PHP 基础
13 probability distributions that must be understood in deep learning
Data can't lie. Plato farm is the leader of the meta universe
The victory of Dao community, tiger Dao VC wins in governance and consensus
TCP Basics
JWT login authentication + token automatic renewal scheme, well written!
技术人 | 研发效能的思考总结
Description of landingsite electronic label quppa firmware entering DFU status
PHP Basics
arthas使用教程
include 与 require include_once 与 require_once 的区别
Which strings will be resolved to null by fastjason?
【学习笔记】border与period
Edge team explains how to improve the comprehensive performance experience through disk cache compression technology
JS promotion: the underlying principle of flat tiling
为报复公司解雇,我更改了项目的所有代码注释!