写歌词软件有哪些,歌词制作软件app 。小编来告诉你更多相关信息 。
文章插图
文章插图
文章插图
文章插图
作者 | 李秋键 责编 | Carol
出品 | AI科技大本营(ID:rgznai100)
自然语言处理作为人工智能的一个重要分支 , 在我们的生活中得到了广泛应用 。其中RNN算法作为自然语言处理的经典算法之一 , 是文本生成的重要手段 。而今天我们就将利用RNN算法建立一个写歌词的软件 。其中的界面如下:
文章插图
文章插图
RNN指的是循环神经网络 , Recurrent Neural Network 。不同于前馈神经网络的是 , RNN可以利用它内部的记忆来处理任意时序的输入序列 , 这让它可以更容易处理如不分段的手写识别、语音识别等 。
RNN模型有比较多的变种 , 这里介绍最主流的RNN模型结构如下:
文章插图
文章插图
上图中左边是RNN模型没有按时间展开的图 , 如果按时间序列展开 , 则是上图中的右边部分 。我们重点观察右边部分的图 。
这幅图描述了在序列索引号tt附近RNN的模型 。其中:
x(t)x(t)代表在序列索引号tt时训练样本的输入 。同样的 , x(t?1)x(t?1)和x(t+1)x(t+1)代表在序列索引号t?1t?1和t+1t+1时训练样本的输入 。
h(t)h(t)代表在序列索引号tt时模型的隐藏状态 。h(t)h(t)由x(t)x(t)和h(t?1)h(t?1)共同决定 。
o(t)o(t)代表在序列索引号tt时模型的输出 。o(t)o(t)只由模型当前的隐藏状态h(t)h(t)决定 。
L(t)L(t)代表在序列索引号tt时模型的损失函数 。
y(t)y(t)代表在序列索引号tt时训练样本序列的真实输出 。
U,W,VU,W,V这三个矩阵是我们的模型的线性关系参数 , 它在整个RNN网络中是共享的 , 这点和DNN很不相同 。也正因为是共享了 , 它体现了RNN的模型的“循环反馈”的思想 。
基于以上认知 , 我们开始搭建我们的软件 。
文章插图
文章插图
实验前的准备首先我们使用的python版本是3.6.5所用到的库有TensorFlow , 是用来训练和加载神经网络常见的框架 , 常常用于数值计算的开源软件库 。节点表示数学操作 , 线则表示在节点间相互联系的多维数据数组 , 即张量(tensor);tkinter用来绘制GUI界面的库;
Pillow库在此项目中用来处理图片和字体等问题 。因为我们的软件不是空白背景的 。需要借助Image函数添加背景 。
文章插图
文章插图
RNN算法搭建1、数据集处理和准备:我们训练的数据集使用各种歌手的歌词本作为训练集 。其中数据集放在date.txt里 , 其中部分数据集如下:
文章插图
文章插图
2、模型的训练:模型训练的代码直接运行train.py即可训练 。其中流程如下:
首先要读取数据集 设定训练批次、步数等等
数据载入RNN进行训练即可
其中代码如下:
def train:
filename = \’date.txt\’
with open(filename, \’r\’, encoding=\’utf-8\’) as f:
text = f.read
reader = TxtReader(text=text, maxVocab=3500)
reader.save(\’voc.data\’)
array = reader.text2array(text)
generator = GetBatch(array, n_seqs=100, n_steps=100)
model = CharRNN(
numClasses = reader.vocabLen,
mode =\’train\’,
numSeqs = 100,
numSteps = 100,
lstmSize = 128,
numLayers = 2,
lr = 0.001,
Trainprob = 0.5,
useEmbedding = True,
numEmbedding = 128
model.train(
推荐阅读
- 周杰伦的青花瓷是写哪里 周杰伦青花瓷歌词图片
- 怎么测试无线网 测试无线网络速度app
- 图片转pdf软件免费手机APP 图片转pdf软件哪个好用
- 个人字体制作软件 个人手写字体制作软件
- 小游戏盒子app推荐 什么游戏盒子好用
- 万物生梵文是百字明咒 万物生歌词
- APP推广拉新的5个秘籍 app如何快速引流
- 直播营销策划方案 app推广营销方案
- APP破解器 破解器软件大全
- 正确卸载手机App的方法 怎么清理手机卸载软件的缓存