PDNN安裝與使用

weixin_34321977發表於2016-04-11

在之前寫的一文“關於PDNN、Theano、Numpy以及Scipy的安裝”中介紹了Theano的安裝,

下面簡單的介紹一下PDNN的安裝與使用,哎,這個從學習的角度來講自己親自動手實現一遍深度學習中的演算法,

這個當然是最好了,不過目前嘛用一下toolkit也不算大錯吧,何況搞程式設計的不是說不能重複造輪子麼。

具體安裝方法在官網上有,http://www.cs.cmu.edu/~ymiao/pdnntk.html,我在這而就當一個搬運工罷了。

感興趣的可以來看看。

為什麼使用PDNN?

------------------------------------------------------------------別人叫這個叫做分割線

PDNN實現了一整套的(深度學習)模型。包括有無監督的學習(SDAs,RBMs),

監督學習(DNN,CNN)和多工的學習都可以在這個單一的框架內實現。

PDNN是在考慮非DL研究人員的需要開發出一種易於使用的工具包。

訓練一個深度學習的模型正如呼叫下面的命令那樣簡單。

在CPU和GPU之間的轉換是自動進行的,這取決於GPUs是否檢測到存在。

python pdnn/cmds/run_DNN.py --train-data "train.pickle.gz,partition=600m,random=true" \
                            --valid-data "valid.pickle.gz,partition=600m,random=true" \
                            --nnet-spec "784:1024:1024:1024:1024:1024:1901" \
                            --wdir ./  --param-output-file dnn.mdl

(我居然把上面的哪個例子直接拿來用,真是見鬼了,上面那個例子只是示範,不能真正執行)

PDNN也有利於進一步的開發。層次化的程式碼組織(commands->models->layers)具有很好的可讀性。

Theano的安裝環境支援梯度計算。這使得使用者能夠將精力集中在演算法/結構的設計上,而不是被令人頭疼的梯度求導所困擾。

(多一句嘴,確實,在搞這些機器學習演算法的時候,大多需要進行優化計算以尋找到最優的引數,而最優化問題目前還是梯度法用的最多)

安裝

-------------------------------------------------------------------------------分割線又來了

1. 安裝Theano。

2. 檢查GitHub上PDNN的穩定版本。

git clone https://github.com/yajiemiao/pdnn

3. 新增PDNN的路徑到PYTHONPATH

export PYTHONPATH=/path/to/pdnn:$PYTHONPATH

這個PDNN應該算是python的第三方庫,由於我對python不熟練,

在bash下,執行echo $PYTHONPATH,發現啥都沒有,然後懵逼了,死活不知道怎麼搞著pdnn路徑

後來還是搞清楚了,上面的第三局還是照常執行,然後效果要在python中看,如下圖

pythonpath