本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個人專欄
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個人專欄
下載W3Cschool手機App,0基礎(chǔ)隨時隨地學編程>>戳此了解
導語
下載W3Cschool手機App,0基礎(chǔ)隨時隨地學編程>>戳此了解
T_T沒有科研夢想的人半夜過來水篇文章~~~
讓Python學會寫寫歌,創(chuàng)創(chuàng)作~~~
純屬娛樂~~~
改編自PyTorch官網(wǎng)的一個教程,不過我用TF寫的,然后生成英文變成了生成中文~~~
Let's Go~~~
相關(guān)文件
百度網(wǎng)盤下載鏈接: https://pan.baidu.com/s/1VUEFR82CqyDj2w9SS4xnFA
密碼: 3dmx
開發(fā)工具
Python版本:3.6.4
相關(guān)模塊:
tensorflow-gpu模塊;
numpy模塊;
以及一些Python自帶的模塊。
其中TensorFlow-GPU版本為:
1.6.0
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
原理簡介
關(guān)于RNN的介紹,請參考我之前的文章:
Python實現(xiàn)簡單的機器翻譯模型(點擊藍字進入)
這里我們使用Char RNN模型進行訓練。
即Seq2Seq模型中的特殊情況輸入與輸出等長。
也就是類似下圖的樣子(圖源網(wǎng)絡(luò)):
具體實現(xiàn)過程詳見相關(guān)文件中的源代碼。
使用演示
在cmd窗口運行Char_RNN.py文件并根據(jù)提示輸入相關(guān)信息即可。
訓練相關(guān)的參數(shù)請在config.py文件中調(diào)整:
訓練所用的數(shù)據(jù)路徑以及生成新文本所用的預熱數(shù)據(jù)請在Char_RNN.py文件中調(diào)整:
訓練演示視頻:
因為時間太長了,我只錄了訓練的前面一部分。
最終訓練結(jié)果如下圖所示:
結(jié)果展示
因為時間和資源有限。
這里只展示周杰倫的所有歌詞作為樣本進行訓練之后測試的結(jié)果。
當然你完全可以找其他文本作為訓練語料來生成風格各異的“文章”,“歌詞”等等~~~
結(jié)果如下:
(預熱歌詞為:是曾與你躲過雨的屋檐)
好吧我并不知道它在說啥T_T
一個失敗的案例T_T
大概是模型太low了。而且訓練數(shù)據(jù)是我從網(wǎng)上直接下載的,也沒有預處理過T_T。中間竟然突然冒出一個括號我也是頹了T_T
更多
隨便玩玩的T_T~~~
有興趣的同學可以試著換更復雜的模型~~~
然后訓練的語料最好處理一下~~~
好久沒寫TF了,代碼可能寫的有點糟糕T_T
就這樣吧~~~