学习谷歌开源工具Magenta
学习谷歌开源工具Magenta
- Magenta介绍
- Magenta下载
- python安装
- 1)前置安装
- 2)下载python3
- magenta环境安装
- 使用Magenta
- 编辑shell脚本
- 用自己的midi文件进行训练
- 下载地址
- 1)midi文件转换成.tfrecord文件
- 2)生成SequenceExamples
- 3)训练
- 4)评估
- 自动生成音乐
- 总结
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.tfrecordconvert_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项目,内置了很多功能,在我的学习的过程中,也遭遇了非常多的坎坷,但也正是因为这些坎坷,才能变强(秃)。
学习谷歌开源工具Magenta相关推荐
- 利用谷歌开源工具 sfntly ,修改字体文件制作想要的字体文件
游戏开发的过程中,总免不了要使用一些字体库. 文章<引用地址> 然而字体库中的字不可能全部需要使用到,一个字体库小则几百K,大则十几M,这无疑增加了客户的流量费用,更增加了游戏的下载时间, ...
- 谷歌年度AI技术总结来了!Jeff Dean执笔,附赠27个开源工具和数据大礼包
杨净 梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI Jeff Dean亲笔盘点谷歌AI研究成果,已经成了一年一度的保留节目. 今年也不例外,还是他抽出一部分假期时间完成的. 过去一年,谷 ...
- 21个必须知道的机器学习开源工具!
作者 | SebastianScholl 译者 | 刘静,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 本文将介绍21种用于机器学习的开源工具. 以下为译文: 你肯定已经了解流行的开源 ...
- 21 个必须知道的机器学习开源工具!
本文将介绍21种用于机器学习的开源工具. 作者 | SebastianScholl 译者 | 刘静,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: 你肯定已经了解流行的开源 ...
- neo4j 机器学习_21个必知的机器学习开源工具,涵盖5大领域
作者 | 张璐瑶.李林虹 来源 | 读芯术 本文将介绍21个你可能没使用过的机器学习开源工具. · 每个开源工具都为数据科学家处理数据库提供了不同角度. · 本文将重点介绍五种机器学习的工具--面向非 ...
- 21个必知的机器学习开源工具,涵盖5大领域
全文共3744字,预计学习时长7分钟 · 本文将介绍21个你可能没使用过的机器学习开源工具. · 每个开源工具都为数据科学家处理数据库提供了不同角度. · 本文将重点介绍五种机器学习的工具--面向非程 ...
- 开源工具Arena,数据科学家再也不用为Kubernetes犯难啦!
摘要: 为什么要用Kubernetes去难为数据科学家呢? 2018年7月,阿里云将深度学习工具Arena贡献给了开源社区,数据科学家无需学习底层IT资源使用,即可在云端运行深度学习,一分钟内启动深度 ...
- 谷歌开源集成学习工具AdaNet:2017年提出的算法终于实现了
晓查 编译整理 量子位 报道 | 公众号 QbitAI 最近,谷歌在GitHub上发布了用TensorFlow实现的AutoML框架--AdaNet,它改进了集成学习的方法,能以最少的专家干预实现自动 ...
- 谷歌推出开源工具DeepVariant,用深度学习识别基因变异
Root 李林 编译整理 量子位 出品 | 公众号 QbitAI Google今天推出了一个名叫DeepVariant的开源工具,用深度神经网络来从DNA测序数据中快速精确识别碱基变异位点. 学科研究 ...
最新文章
- adf检验代码 python_第22期:向量自回归(VAR)模型预测——Python实现
- JAVA入门: Annotation
- (134)FPGA面试题-介绍冯·诺依曼体系结构和哈佛体系结构
- eclipse java import_java – Eclipse:将源代码的import文件夹导入...
- python调用摄像头人脸识别代码_OpenCV3-Python人脸识别方法—人脸识别与标记
- 网站功能小Demo——学习MD5加密的一点心得
- Python 基础——tuple与list、append与extend
- plantuml最大宽度_设置TH最小和最大宽度非常缓慢
- oracle PL/SQL(procedure language/SQL)程序设计之异常(exception)
- 统一建模语言 UML
- Programe_Of_Beauty:2.17 数组循环位移
- 使用整数除法获得商c语言,C语言练习题答案
- Android特效专辑(九)——仿微信雷达搜索好友特效,逻辑清晰实现简单
- 迈卡名车茂深度访谈信达名车——宋丙刚:自信坚韧 坚持不懈
- iView的table表格购物车的使用案例
- php获取蓝奏云直连,最新php蓝奏云直链api接口源代码
- 用springboot jpa 报:No property yer found for type OrderMaster错
- qrcode实现二维码
- ANSYS中关于质量矩阵 刚度矩阵的提取【1】
- 【持续更新】阿里云盘扩容码!不限速!博主已经扩容超过3TB!