学习谷歌开源工具Magenta
学习谷歌开源工具MagentaMagenta介绍下载Python(Centos)1)安装依赖包2)下载python3)解压4)建立一个空文件夹,存放python35)执行配置文件,编译,编译安装6)建立软连接7)测试安装magenta1)升级pip32)下载前置东西3)下载Magenta由于种种原因,放弃Centos,转战ubuntu18下载python1)前置2)下载python3安装magen
学习谷歌开源工具Magenta
Magenta介绍
Magenta是谷歌开源的一个人工智能工具,使用tensorflow编写,可以自动生成音乐与旋律等。
github:https://github.com/tensorflow/magenta。
操作系统:mac或者ubuntu。
Magenta下载
python安装
1)前置安装
安装python之前,需要安装一些其他东西,防止出错:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
sudo apt-get install libbz2-dev
sudo apt-get install libsndfile1
2)下载python3
wget http://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
# 解压文件
tar -xvzf Python-3.7.0.tgz
# 进入目录
cd Python-3.7.0
# 配置
./configure --with-ssl
# 编译
make
# 编译安装
sudo make install
下载完成后可以使用python3
命令进行测试,如果能顺利进入python环境就安装成功啦!
magenta环境安装
安装完python之后,我们就该进行magenta项目环境的安装了。
# 下载脚本文件
curl https://raw.githubusercontent.com/tensorflow/magenta/master/magenta/tools/magenta-install.sh > /tmp/magenta-install.sh
# 执行脚本文件
bash /tmp/magenta-install.sh
环境安装完毕!!!!
使用Magenta
在一开始,我们先使用官方已经训练好的模型进行生成鼓点。
使用命令下载:
wget -o drum https://http://download.magenta.tensorflow.org/models/drum_kit_rnn.mag
具体链接在github项目中的每个modules文件的.md开头中。
编辑shell脚本
使用命令mkdir创建gen.sh文件,用来生成音乐,内容如下:
BUNDLE_PATH=/root/python_demo/magenta-test/drum_kit_rnn.mag # 文件地址
CONFIG=drum_kit # <one of 'one_drum' or 'drum_kit', matching the bundle> 选一个类型
#
drums_rnn_generate --config=${CONFIG} \
--bundle_file=${BUNDLE_PATH} \
--output_dir=/root/python_demo/magenta-test/music \
--num_outputs=10 --num_steps=128 --primer_drums="[(36,)]"
赋予权限后,运行编辑好的脚本文件,将会自动在output_dir目录生成.midi文件,是不是很神奇!虽然并不是很好听(默默吐槽)。
用自己的midi文件进行训练
我们来训练melody类型的~首先通过midishow平台,通过评论拿积分进行下载大量的midi流行音乐,然后上传至ubuntu,进行训练。
下载地址
midishow平台:https://www.midishow.com
1)midi文件转换成.tfrecord文件
训练需要将.midi音乐文件转换成.tfrecord格式的文件,创建并编辑脚本文件,transfer.sh:
# midi文件总目录地址,如/root/....
INPUT_DIRECTORY=<folder containing MIDI and/or MusicXML files. can have child folders.>
# TFRecord file that will contain NoteSequence protocol buffers.生成目录的地址
SEQUENCES_TFRECORD=/tmp/notesequences.tfrecord
convert_dir_to_note_sequences \
--input_dir=$INPUT_DIRECTORY \
--output_file=$SEQUENCES_TFRECORD \
--recursive
首行写上midi文件总目录,在第二行即SEQUENCES_TFRECORD写上生成文件安放的目录,赋予执行权限,运行。
2)生成SequenceExamples
这一步是配置训练的一系列参数,具体如下:
melody_rnn_create_dataset \
--config=<one of 'basic_rnn', 'mono_rnn', lookback_rnn', or 'attention_rnn'> \
--input=/tmp/notesequences.tfrecord \
--output_dir=/tmp/melody_rnn/sequence_examples \
--eval_ratio=0.10
其中配置我们选attention_rnn
,input写上我们之前生成的.tfrecord文件目录,output_dir写上要放置的目录。
将其保存为config.sh。
3)训练
最后一步,我们需要进行模型的训练,创建train.sh,内容如下:
melody_rnn_train \
--config=attention_rnn \
--run_dir=/tmp/melody_rnn/logdir/run1 \
--sequence_example_file=/tmp/melody_rnn/sequence_examples/training_melodies.tfrecord \
--hparams="batch_size=64,rnn_layer_sizes=[64,64]" \
--num_training_steps=20000
run_dir自己配置即可,是运行的目录,然后其他参数仿照上面。训练次数为20000次,赋予权限后再此运行。
4)评估
训练完之后,可以进行模型的评估,具体脚本代码如下:
melody_rnn_train \
--config=attention_rnn \
--run_dir=/tmp/melody_rnn/logdir/run1 \
--sequence_example_file=/tmp/melody_rnn/sequence_examples/eval_melodies.tfrecord \
--hparams="batch_size=64,rnn_layer_sizes=[64,64]" \
--num_training_steps=20000 \
--eval
注意,这里的sequence_example_file是sequence_examples目录下的另一个文件。
可以运行tensorboard去浏览器来观看模型的效果。
tensorboard --logdir=/tmp/melody_rnn/logdir
使用ip:6006进行访问。
自动生成音乐
接下来,就可以使用训练好的模型来进行训练啦!!!!
编辑脚本文件gen.sh:
melody_rnn_generate \
--config=attention_rnn \
--run_dir=/tmp/melody_rnn/logdir/run1 \
--output_dir=/tmp/melody_rnn/generated \
--num_outputs=10 \
--num_steps=128 \
--hparams="batch_size=64,rnn_layer_sizes=[64,64]" \
--primer_melody="[60]"
生成目录自己替换即可。最后就会得到一份midi文件,将其传至本地,就可以听取啦!!!虽然我很想吐槽这个音乐是真的迷。
总结
magenta是个很有趣的tensorflow项目,内置了很多功能,在我的学习的过程中,也遭遇了非常多的坎坷,但也正是因为这些坎坷,才能变强(秃)。
更多推荐
所有评论(0)