HTML5技术

用Tensorflow让神经网络自动创造音乐 - Charlotte77(2)

字号+ 作者:H5之家 来源:博客园 2016-07-14 16:00 我要评论( )

SEQUENCES_TFRECORD=/tmp/ notesequences.tfrecord EVAL_DATA=/tmp/ evaluation_melodies.tfrecord 5 EVAL_RATIO=0.10 ENCODER= basic_one_hot_encoder 6 bazel run //magenta/models:basic_rnn_create_dataset --

SEQUENCES_TFRECORD=/tmp/notesequences.tfrecord EVAL_DATA=/tmp/evaluation_melodies.tfrecord 5 EVAL_RATIO=0.10 ENCODER=basic_one_hot_encoder 6 bazel run //magenta/models:basic_rnn_create_dataset -- \ 7 --input=$SEQUENCES_TFRECORD \ 8 --train_output=$TRAIN_DATA \ 9 --eval_output=$EVAL_DATA \ 10 --eval_ratio=$EVAL_RATIO \ 11 --encoder=$ENCODER

  ok,这里我们的数据处理就完成了,生成的训练文件在"/tmp/training_melodies.tfrecord"里

 

  4.训练神经网络模型

  训练数据生成后就可以训练模型了,这里使用的是RNN模型:

bazel build //magenta/models:basic_rnn_train ./bazel-bin/magenta/models/basic_rnn_train --experiment_run_dir=/tmp/basic_rnn/run1 --sequence_example_file=$TRAIN_DATA --eval=false --hparams=--num_training_steps=1000

 

  5.生成测试的旋律

  模型那一步非常非常耗时间,Github里设置的是20000次迭代,差点把我的电脑跑烧起来 = =,你可以根据实际硬件情况设置迭代次数。测试旋律和训练的旋律一样,都是midi文件,我这里选取的是Katy Perry的Peacock(小黄歌 = =,想看一下用Coldplay的训练数据在katy Perry上测试的结果是啥)

PRIMER_PATH=/Users/shelter/magenta/magenta/music/coldplay/KatyPerryPeacock.mid #注意这里是绝对地址,只能指定一首歌 4 bazel run //magenta/models:basic_rnn_generate -- \ 5 --experiment_run_dir=/tmp/basic_rnn/run1 \ \ 7 --primer_midi=$PRIMER_PATH \ 8 --output_dir=/tmp/basic_rnn_3 \ 9 --num_steps=64 \ 10 --num_outputs=16

  你可以用 "bazel test //magenta:all"查看结果,在 :6006 里查看可视化结果,包含收敛过程,accuracy等。

  最后生成的旋律就是开头百度云里的文件了。还有另外一个是用轻音乐测试的,效果也不错。

 

  总结:

  1.一开始我的训练次数是20000次,到1000次的时候算法发散了,loss值由本来从20几万下降到2000多左右然后突然上升到16000左右,accuracy也下降了,所以就退出了,把迭代次数换成1000次训练。训练结束的时候算法还没有收敛,但是我想快点看到结果,而且电脑跑的太慢了,就直接拿来用了。如果你有GPU或者愿意等个几天跑程序,可以把迭代次数设置的大一点,等算法收敛后再进行测试。模型训练的好坏直接决定最后得到的音乐的好听程度,所以最好等算法收敛后在进行测试。我测试的世界各文件中很多都像乱弹的。

  2.这个项目刚开始不久,有一个论坛专门给大家交流学习的心得以及提问题,点。上面的注释是我遇到的问题,如果遇到了新的问题,可以在论坛上发帖求助。我看到有的人生成的音乐很有那种诡异的哥特风哈哈。

  3.这个项目背后的具体原理我没有写,Github上写的很清楚,可以参考这里

  4.生成后的音乐可以根据自己的需要加上节拍,应该会好听一点~

 

  总之,现在开始做吧,很有趣的!~

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 关于后台系统自动生成的一点思考 - 西安王磊

    关于后台系统自动生成的一点思考 - 西安王磊

    2017-03-13 08:02

  • 构建自动化前端样式回归测试——BackstopJS篇 - laden666666

    构建自动化前端样式回归测试——BackstopJS篇 - laden666666

    2017-02-13 16:03

  • 前端工程自动化构建总结 - bjtqti

    前端工程自动化构建总结 - bjtqti

    2017-01-10 15:00

  • 手机端H5点击类目自动定位到相应内容 - wangwht

    手机端H5点击类目自动定位到相应内容 - wangwht

    2017-01-10 14:00

网友点评
t