magenta在win训练Melody RNN模型教程

写在前面

训练的模型是Melody RNN,详情查看官方GitHub页面。

参考资料:教练我想写日式流行歌!——黑科技magenta残差网络训练教程

准备

首先安装python、tensorflow、magenta!

……这部分可自行搜索安装教程。

检查安装情况:

cmd:

activate	#这个是激活conda虚拟环境,没有虚拟可以不开
python		#进python命令行

python:

import tensorflow
import magenta
import magenta.music as mm

3个import都成功就ok了

生成旋律(使用预训练模型)

首先在官方GitHub页面选择要使用的预训练模型,可以点击这个链接下载attention_rnn.mag。

进入有magenta环境的cmd,cd命令进入有attention_rnn.mag的文件夹,这里起名为melodyRNN。

cd 你的路径\melodyRNN

之后的生成命令中,win路径记得加双\\

在本目录中准备一个单独的文件夹(这里叫generate)用来放输出的音乐,把路径加入下面命令的output_dir参数中。

在cmd直接输入生成命令,示例为用【60】单音生成:

melody_rnn_generate --config='attention_rnn' --bundle_file=attention_rnn.mag --output_dir=generate --num_outputs=10 --num_steps=128 --primer_melody="[60]"

运行完能看到在输出路径中有新的10个midi文件了。

另一个生成的例子,以“小星星”开头4个音为旋律引子,就是添加了:60, -2, 60, -2, 67, -2, 67, -2:

melody_rnn_generate --config='attention_rnn' --bundle_file=attention_rnn.mag --output_dir=generate --num_outputs=10 --num_steps=128 --primer_melody="[60, -2, 60, -2, 67, -2, 67, -2]"

转换格式

把要训练的所有mid文件,放到一个新建的文件夹里,这里使用input_mid

新建note_sequences文件夹,用于存放转换的note_sequences,跑命令:

convert_dir_to_note_sequences --input_dir=input_mid --output_file=note_sequences\\notesequences.tfrecord --recursive

构建数据集

新建dataset文件夹,用于存放数据集

melody_rnn_create_dataset --config=attention_rnn --input=note_sequences\\notesequences.tfrecord --output_dir=dataset --eval_ratio=0.10

训练和验证模型

num_training_steps控制训练步数,首次尝试最好不要设置过高,可以先简单设置为1000。

个人体验训练速度:大约1000步2h46min;2000步4h17min;6000步8h45min……

把dataset刚刚生成的training_melodies.tfrecord复制到最外面的目录,运行:

melody_rnn_train --config=attention_rnn --run_dir=logdir\\run --sequence_example_file=training_melodies.tfrecord --hparams="batch_size=64,rnn_layer_sizes=[64,64]" --num_training_steps=1000

查看Tensorflow仪表板

参考资料:解决在win系统下使用DOS命令开启TensorBoard的问题及方法步骤

打开新的cmd,启动虚拟环境,cd到log文件所在的目录。

activate	#没有虚拟环境可以不开
cd 你的路径\melodyRNN\logdir\run\train
tensorboard --logdir=你的路径\melodyRNN\logdir\run1\train

第五步,打开浏览器,查看网址,此时可以看到可视化界面,tensorboard启动完成。

使用自己的模型生成旋律

用【60】单音生成:

melody_rnn_generate --config=attention_rnn --run_dir=logdir\\run --output_dir=generate --num_outputs=10 --num_steps=128 --hparams="batch_size=64,rnn_layer_sizes=[64,64]" --primer_melody="[60]"

以“小星星”开头4个音为旋律引子:

melody_rnn_generate --config=attention_rnn --run_dir=logdir\\run --output_dir=generate --num_outputs=10 --num_steps=128 --hparams="batch_size=64,rnn_layer_sizes=[64,64]" --primer_melody="[60, -2, 60, -2, 67, -2, 67, -2]"

你可能感兴趣的:(magenta)