日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tensorflow让神经网络自动创造音乐

發布時間:2024/3/12 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tensorflow让神经网络自动创造音乐 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
偶然在網上看到了一個讓我很感興趣的項目 Magenta,用Tensorflow讓神經網絡自動創造音樂。 白話就是:可以用一些音樂的風格來制作模型,然后用訓練出的模型對新的音樂進行加工從而創造出新的音樂。 花了半天時間搗鼓終于有了成果,挺開心的,同時也把這半天的經驗拿來分享,能讓大家節約一些時間也算是我對社會做出的一點貢獻吧。 感受 Google 的黑科技 希望大家能喜歡我的Chinglish
--第一步,安裝,工具準備!-- 操作系統:請放棄 windows 吧,選擇linux 或者 Unix
想在windows上直接運行現在真的是毫無辦法,剛開始想嘗試新技術,應用容器——docker,不過沒有windows 專業版的 hyperV,無法成功安裝docker。
在linux上安裝 1. 基本編程環境 python 2.7 / 3.* 都可以使用 TensorFlow 的 API Java 環境:JDK 可以用 apt-get 安裝 順便把java添加到環境中吧,linux 中修改 bashrc. 路徑PATH="$PATH:$HOME/bin" 這部分我就不贅述,反正你要這都不會百度基本上就告別編程了。
2. 克隆GitHub項目:Project Magenta git clone https://github.com/tensorflow/magenta.git 默認你會用 git
3. TensorFlow 的安裝 https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html 本團員是這樣做的: $ sudo apt-get install python-pip python-dev $ sudo pip install --upgradehttps://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
你可能會在這個過程遇到版本依賴問題,可以嘗試參考下面做法: sudo aptitude install python-dev 嘗試選擇不同解決方案應該能解決問題

4. 安裝bazel https://github.com/bazelbuild/bazel/releases/tag/0.3.0 選擇合適版本 http://www.bazel.io/docs/install.html
面對新鮮事物,請聽親生父母的,請一定看官方文檔: http://www.bazel.io/docs/install.html linux download 的時候可以使用 wget bazel命令要能在命令行使用哦
--第二步:開始創作!--
命令可以保存為 bash 格式方便以后使用,我是分四個步驟,編了4個批處理文件, 請一定注意修改路徑 //中途需要從github下載一些東西,不造是什么,所以請保持網絡暢通
1. 第一個bash:創建旋律數據庫
#!/bin/bash ##創建旋律數據庫 MIDI_DIRECTORY=/home/liukun/TensorFlow/magenta/music/train #這里換成你的文件路徑就行了 SEQUENCES_TFRECORD=/home/liukun/TensorFlow/magenta/music/train/notesequences.tfrecord
bazel run //magenta/scripts:convert_midi_dir_to_note_sequences -- \ --midi_dir=$MIDI_DIRECTORY \ --output_file=$SEQUENCES_TFRECORD \ --recursive
2.第二個bash:提取出訓練樣本
# TFRecord file containing NoteSequence protocol buffers from convert_midi_dir_to_note_sequences.py. SEQUENCES_TFRECORD=/home/liukun/TensorFlow/magenta/music/train/notesequences.tfrecord
# TFRecord file that TensorFlow's SequenceExample protos will be written to. This is the training dataset. TRAIN_DATA=/home/liukun/TensorFlow/magenta/music/train/training_melodies.tfrecord
# Optional evaluation dataset. Also, a TFRecord file containing SequenceExample protos. EVAL_DATA=/home/liukun/TensorFlow/magenta/music/eval_melodies.tfrecord
# Fraction of input data that will be written to the eval dataset (if eval_output flag is set). EVAL_RATIO=0.10
bazel run //magenta/models/basic_rnn:basic_rnn_create_dataset -- \ --input=$SEQUENCES_TFRECORD \ --train_output=$TRAIN_DATA \ --eval_output=$EVAL_DATA \ --eval_ratio=$EVAL_RATIO

遇到的問題:本地github保存的賬號可能會因為與遠程github賬號不同而出現錯誤,我root賬戶綁定了github用戶,哪曾想到今天.....所以不用sudo了
3.第三個bash : 訓練神經網絡模型, 最耗費時間!!!
#首先compile basic_rnn工具 bazel build //magenta/models/basic_rnn:basic_rnn_train
TRAIN_DATA=/home/liukun/TensorFlow/magenta/music/train/training_melodies.tfrecord #訓練模型,其中“rnn_layer_size”是神經網絡的層數,可以自定義 /home/liukun/TensorFlow/magenta/bazel-bin/magenta/models/basic_rnn/basic_rnn_train --experiment_run_dir=/home/liukun/TensorFlow/magenta/music --sequence_example_file=$TRAIN_DATA --eval=false --hparams='{"rnn_layer_sizes":[30]}' --num_training_steps=2000

我為了節省時間,只訓練了2000遍

4. 第四個bash:生成新的的旋律!
##生成旋律 #指定測試旋律的文件地址 PRIMER_PATH=/home/liukun/TensorFlow/magenta/music/origional/Canon.mid #注意這里是絕對地址,只能指定一首歌 # num_outputs 指定生成曲目數量 bazel run //magenta/models/basic_rnn:basic_rnn_generate -- \ --experiment_run_dir=/home/liukun/TensorFlow/magenta/magenta/models \ --hparams='{"rnn_layer_sizes":[30]}' \ --primer_midi=$PRIMER_PATH \ --output_dir=/home/liukun/TensorFlow/magenta/music/generate \ --num_steps=64 \ --num_outputs=3

等待顯得那么漫長。 程序執行結束,我按耐不住一顆好奇之心,滿懷期待地打開剛剛誕生于這個世界的新藝術,淚目,這融合了21世紀最前沿技術的新作 旋律奏響,真TM......不好聽。

老司機留話: 主要需要修改的就是文件的路徑了。 我的思路使用一些風格突出的歌曲作為訓練集,然后對簡單的旋律進行加工,這樣應該更能體現效果。
提醒:文件路徑要使用絕對路徑,雖然不知道問什么,但不這樣就會出錯,提示權限問題。

關于這個項目的Google討論小組: https://groups.google.com/a/tensorflow.org/forum/#!forum/magenta-discuss

最后祝大家假期愉快!

5555半天沒刷題了~~~~


轉載請注意排版,別搞得難看的一比!!!


目錄結構,供參考:

├── bazel installer │?? ├── bazel │?? └── bazel-0.3.0-installer-linux-x86_64.sh ├── magenta │?? ├── 1.sh │?? ├── 1.sh~ │?? ├── 2.sh │?? ├── 2.sh~ │?? ├── 3.sh │?? ├── 3.sh~ │?? ├── 4.sh │?? ├── 4.sh~ │?? ├── __init__.py │?? ├── LICENSE │?? ├── magenta │?? │?? ├── 1.sh │?? │?? ├── 2.sh~ │?? │?? ├── BUILD │?? │?? ├── __init__.py │?? │?? ├── __init__.pyc │?? │?? ├── lib │?? │?? │?? ├── BUILD │?? │?? │?? ├── __init__.py │?? │?? │?? ├── __init__.pyc │?? │?? │?? ├── melodies_lib.py │?? │?? │?? ├── melodies_lib_test.py │?? │?? │?? ├── midi_io.py │?? │?? │?? ├── midi_io.pyc │?? │?? │?? ├── midi_io_test.py │?? │?? │?? ├── note_sequence_io.py │?? │?? │?? ├── note_sequence_io_test.py │?? │?? │?? ├── sequence_example_lib.py │?? │?? │?? ├── sequence_to_melodies.py │?? │?? │?? ├── sequence_to_melodies_test.py │?? │?? │?? └── tf_lib.py │?? │?? ├── models │?? │?? │?? ├── attention_rnn │?? │?? │?? │?? ├── attention_rnn_create_dataset.py │?? │?? │?? │?? ├── attention_rnn_encoder_decoder.py │?? │?? │?? │?? ├── attention_rnn_generate.py │?? │?? │?? │?? ├── attention_rnn_graph.py │?? │?? │?? │?? ├── attention_rnn_train.py │?? │?? │?? │?? ├── BUILD │?? │?? │?? │?? └── README.md │?? │?? │?? ├── basic_rnn │?? │?? │?? │?? ├── basic_rnn_create_dataset.py │?? │?? │?? │?? ├── basic_rnn_encoder_decoder.py │?? │?? │?? │?? ├── basic_rnn_encoder_decoder.pyc │?? │?? │?? │?? ├── basic_rnn_generate.py │?? │?? │?? │?? ├── basic_rnn_graph.py │?? │?? │?? │?? ├── basic_rnn_graph.pyc │?? │?? │?? │?? ├── basic_rnn_train.py │?? │?? │?? │?? ├── BUILD │?? │?? │?? │?? ├── README.md │?? │?? │?? │?? └── run_basic_rnn_train.sh │?? │?? │?? ├── lookback_rnn │?? │?? │?? │?? ├── BUILD │?? │?? │?? │?? ├── lookback_rnn_create_dataset.py │?? │?? │?? │?? ├── lookback_rnn_encoder_decoder.py │?? │?? │?? │?? ├── lookback_rnn_generate.py │?? │?? │?? │?? ├── lookback_rnn_graph.py │?? │?? │?? │?? ├── lookback_rnn_train.py │?? │?? │?? │?? └── README.md │?? │?? │?? └── shared │?? │?? │?? ├── BUILD │?? │?? │?? ├── melody_rnn_create_dataset.py │?? │?? │?? ├── melody_rnn_generate.py │?? │?? │?? ├── melody_rnn_train.py │?? │?? │?? ├── primer.mid │?? │?? │?? └── README.md │?? │?? ├── protobuf │?? │?? │?? ├── BUILD │?? │?? │?? └── music.proto │?? │?? ├── reviews │?? │?? │?? ├── assets │?? │?? │?? │?? ├── attention_interpolation.png │?? │?? │?? │?? ├── attention_parameterization.png │?? │?? │?? │?? ├── color-preserving-ny.jpg │?? │?? │?? │?? ├── diagram.png │?? │?? │?? │?? ├── generation.gif │?? │?? │?? │?? ├── mnist_generation.png │?? │?? │?? │?? ├── pixelrnn_figure6.png │?? │?? │?? │?? ├── pixelrnn_full_context.png │?? │?? │?? │?? ├── pixelrnn_masks_A.png │?? │?? │?? │?? ├── pixelrnn_masks_B.png │?? │?? │?? │?? ├── pixelrnn_masks_highlevel.png │?? │?? │?? │?? ├── svhn_generation.png │?? │?? │?? │?? └── tubingen-starry-night.jpg │?? │?? │?? ├── draw.md │?? │?? │?? ├── pixelrnn.md │?? │?? │?? ├── README.md │?? │?? │?? ├── styletransfer.md │?? │?? │?? └── summary_generation_sequences.md │?? │?? ├── Rossini_barbe(2).mid │?? │?? ├── Rossini_barbe(3).mid │?? │?? ├── Rossini_barbe.mid │?? │?? ├── scripts │?? │?? │?? ├── BUILD │?? │?? │?? ├── convert_midi_dir_to_note_sequences.py │?? │?? │?? └── convert_midi_dir_to_note_sequences_test.py │?? │?? └── testdata │?? │?? ├── BUILD │?? │?? ├── example_complex.mid │?? │?? ├── example.mid │?? │?? └── notesequences.tfrecord │?? ├── music │?? │?? ├── eval_melodies.tfrecord │?? │?? ├── generate │?? │?? │?? ├── 2016-07-16_224233_1.mid │?? │?? │?? ├── 2016-07-16_224233_2.mid │?? │?? │?? └── 2016-07-16_224233_3.mid │?? │?? ├── origional │?? │?? │?? └── Canon.mid │?? │?? └── train │?? │?? ├── basket.mid │?? │?? ├── detective.mid │?? │?? ├── notesequences.tfrecord │?? │?? └── training_melodies.tfrecord │?? ├── pretty_midi.BUILD │?? ├── python_midi.BUILD │?? ├── README.md │?? ├── six.BUILD │?? ├── tools │?? │?? └── bazel.rc │?? ├── util │?? │?? └── python │?? │?? └── BUILD │?? ├── WORKSPACE │?? └── WORKSPACE~


總結

以上是生活随笔為你收集整理的Tensorflow让神经网络自动创造音乐的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。