Magenta魔改记-0:Magetna初见
Magenta魔改记-0:Magetna初见
前言:
最近在魔改Magenta,所以会涉及到阅读、修改Magenta的源代码。我个人认为Magenta是一个很好的项目,虽然代码可能写的有点乱,但模型的架构写的都很好,从主观上来看(听),做出的自动作曲模型效果也很优异。Magenta可以为做深度学习自动作曲的研究者提供一个参考,同时我在这里也希望给有兴趣的朋友提供一些经验。
Note:我的解决方法不一定是最优的,除了我的解决方案之外,读者可以自行参考Magenta官方给出的一些文档(尽管相当散乱且不连续)。本文的目标是尽量使读者快速了解Magenta项目以及代码结构,并着手按自己的想法修改。
Update:2019.5:修改了一些内容并更新了Magenta的版本。
Magenta是什么:
Magenta是由google组织的一个项目组,专门进行基于机器学习的人工智能艺术方面的研究,包括自动作曲、音频生成、图画生成等方面。
主页:https://magenta.tensorflow.org/
Github: https://github.com/tensorflow/magenta
相关介绍:https://mp.weixin.qq.com/s/yCxcV2hF_o_r40QQ3ooctA
项目中包含的模型,在自动作曲方面,有:
Melody_rnn:一个单声部、单音作曲模型
Polyphony_rnn:二声部,一个声部为单音旋律一个声部为和弦组合的生成模型
以及imporv_rnn、drum_rnn、performance_rnn等深度学习模型(还有强化学习模型)。
在其他方面,还有NSynth(Wavenet),sketch rnn(画简笔画),AIduet(人弹一段,AI跟弹一段)等成熟的项目。
运行环境:
Magenta主要基于Tensorflow(Python)编写,有部分项目使用Tensorflowjs。
本文基于Magenta 1.1.1版本(2019.5)
安装:
官网给出的安装指南如下:
https://github.com/tensorflow/magenta/blob/master/README.md#installation
Magenta支持Python>=2.7与Python>=3.5。对于linux用户,Magenta官方给出了安装脚本,使用方法如下:
curl https://raw.githubusercontent.com/tensorflow/magenta/master/magenta/tools/magenta-install.sh > /tmp/magenta-install.sh
bash /tmp/magenta-install.sh
上述脚本安装完成后,就可以source activate magenta
打开Magenta运行环境了。
对于Windows用户(Linux用户也适用),我们也可以轻松实用anaconda等包管理工具安装Magenta。
这里,我给出一个我安装的方法如下:
对于只使用CPU的用户:
conda create -n magenta python=3.6 # 这里3.5也可以
activate magenta # (Linux用户为 source activate magenta)
pip install magenta
Linux用户在安装Magenta之前需要先安装一些运行库,用以安装rimidi:
sudo apt-get install build-essential libasound2-dev libjack-dev
如果需要用到GPU,可以直接将上文中pip install magenta
替换成pip install magenta-gpu
。
magenta
和magenta-gpu
的区别仅在后者多了tensorflow-gpu
库。
截止到2018.5.18,Magenta的版本为1.1.1,Magenta所使用的TensorFlow的版本为1.13.1
当然,如果需要运行tensorflow-gpu
,需要安装NVIDIA显卡驱动和CUDA 以及cuDNN,请读者自行搜索方法,这里就不再赘述了。
训练/生成:
Magenta提供了命令行(Linux\Mac),在windows系统上,也可以使用Python命令行操作。我们可以通过命令行来进行训练、用生成的权重或官方提供的权重进行自动作曲。
我在之后的文章中会分析训练和生成的具体代码。如果你想先试着运行一下Magenta,可以参考如下内容:
Magenta的GitHub内各个Model的文档,以polyphony_rnn为例:
https://github.com/tensorflow/magenta/tree/master/magenta/models/polyphony_rnn
一些国内的博客:
https://www.cnblogs.com/charlotte77/p/5664523.html
https://blog.csdn.net/bestbuild/article/details/51927007
Magenta魔改记-0:Magetna初见相关推荐
- Magenta魔改记-2:数据格式与数据集
Magenta魔改记-2:数据格式与数据集 数据格式:MusicXML与MIDI 上一节我们主要提到了两种数据格式:MIDI(.mid/.midi)和MusicXML(.xml/.mxl).其实他们二 ...
- Magenta魔改记-1:原始数据转换
Magenta魔改记-1:原始数据转换 前言 本文主要讲述Magenta项目原始数据整合的过程,并介绍了读取MIDI和XML的函数.通过本文我们可以看到,在原始音乐数据整合的过程中,Magenta将不 ...
- 绝地求生键位魔改v3.0
因为fps类游戏的默认按键和LOL有很大差别,从舒服度和操作灵活性上说,LOL应该是更胜一筹,今天我就强行改下键位布局, 当然这不是最终版, 女士们和先生们欢迎讨论! 绝地求生魔改键位(未提到的保持默 ...
- 鸿蒙系统魔改,华为EMUI 11正式发布,魔改系统可优先升级鸿蒙OS 2.0
华为手机相信大家都不陌生,作为国内顶尖的手机设备制造商.华为近些年的发展更是有目共睹的,在5G技术受到美国实体清单影响之后:谷歌也宣布了面对华为关闭其GMS服务.由于手机系统缺少了必要的软件生态,华为 ...
- 绝地求生魔改键位v4.0
绝地求生魔改键位v4.0(未提到的保持默认设置) 各位同学根据需要修改 图像 显示模式 窗口化 分辨率 1920*1080 抗锯齿 超高 后期处理 ...
- xxl-job 2.2.0 魔改自动主动执行器以及任务
xxl-job 需要手动在控制台注册任务和执行器,操作麻烦.增加操作复杂性. 魔改2.2.0版本 自动注册- Quick start 1. 首先定义一个注解, 通过注解在client端注入我们的同步器 ...
- 青龙面板Nvjdc魔改前段待弹窗---仅支持2.0版本
青龙安装部署教程-------点击跳转 没服务器的先自行购买,腾讯云2H4G8M首年74–点击购买 QQ交流:1014549449 --------------点击跳转 只需要把wwwroot文件夹替 ...
- 代码已开源,一起魔改大西瓜!
上了两次微博热搜的<合成大西瓜>,想必大家都玩过了,好多人刚开始嗤之以鼻,最后真香了,说实话有点上头. 其火热程度直登热搜第三,阅读量6.9亿,朋友圈里也在纷纷安利. 合成大西瓜 游戏界面 ...
- 魔改GPT自动写网文,速度一秒十字,还能给太监作品无限续更 | 开源
博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如果一个人只看网文,那会写出来怎样的文字? 看了100G网文后,这个AI模型帮你试了一下. 先来一段自由创作: 乍眼看去很有内味,而且基本是 ...
最新文章
- 《基于场景的工程方法》作者问答录
- 【计算机网络】数据链路层 : CSMA/CD 协议 ( 载波监听多点接入 / 碰撞检测 协议 | 单程端到端传播时延 | 截断二进制指数规避算法 | 计算示例 | 最小帧长问题 )★
- boost::hana::empty用法的测试程序
- 机器学习-集成学习-提升树-LightGBM
- Java命令行界面(第6部分):JOpt简单
- Linux下创建动态库与使用
- 排序归并连接Merge Sort Join
- 20169210《Linux内核原理与分析》课程总结
- 静态代码块、非静态代码块和构造方法
- linux那个系统支持开发,求问如何确定centos支持哪个版本的gcc
- [转载] 使用Python中的NLTK和spaCy删除停用词与文本标准化
- WebFrom 【文件上传】
- IBM x3850 x5U盘启动或光驱启动不起作用
- python爬取ZOL高清壁纸
- 多端开发之uniapp开发app
- Excel学习日记:L22-时间格式工龄与工时的计算
- VM虚拟机安装CentOS7系统后连接不上网络的问题(service netword restart)重启网卡和重置网络编译器
- https 加密、http2.0、keep-alive
- C语言元祖图片,C类(元祖)蛋糕.doc
- matlab中增大迭代次数,贝叶斯优化matlab