Keras深度學習框架配置


作者:周縱葦

微博:@MrGiovanni

郵箱:zongweiz@asu.edu


Please cite this paper if you found it useful. Thanks!

Wang H, Zhou Z, Li Y, et al. Comparison of machine learning methods for classifying mediastinal lymph node metastasis of non-small cell lung cancer from 18F-FDG PET/CT images[J]. 2017, 7.

---

論文引用——3.2 測試平臺

項目代碼是在Windows 7上運行的,主要用到的Matlab R2013a和Python,其中Matlab用于patch的分割和預處理,卷積神經網絡搭建用到了根植于Python和Theano的深度學習框架Keras。Keras是基于Theano的一個深度學習框架,它的設計參考了Torch,用Python語言編寫,是一個高度模塊化的神經網絡庫,支持GPU和CPU,用起來特別簡單,適合快速開發。


直接上干貨,拒絕走彎路

下載一個Anaconda Python Distribution,網址: https://www.continuum.io/downloads#_windows

無腦安裝,一直next

安裝完成后,該有的基礎包就都有了,安裝完anaconda,就相當于安裝了Python、IPython、集成開發環境Spyder、一些包等等。然后打開Anaconda Prompt,cd到?.py?文件的路徑,輸入“python **.py”,注意:這兒和cmd的命令相比多了一個“python”。要是你不加python,會提示錯誤:拒絕訪問。

打開Anaconda Prompt,輸入命令,就可以運行py文件了

在打開的Anaconda Prompt的命令行中輸入“pip install keras",稍等片刻,keras直接就安裝完了,好方便!


pip install keras


再接著輸命令“conda install mingw libpython”,多等片刻,MinGW也就安裝完了。

解決g++ not detected問題

最近我安裝的時候感覺特別慢,有時候根本就沒有進度,我懷疑是被墻了。

所以我默默地翻墻了,然后就有進度啦

接下來呢,開始裝theano~三步走

1. 下載theano的zip文件,解壓到你電腦的.../Anaconda/Lib/site-packages/theano目錄下,注意:原來這個site-packages里面本身就有一個叫做theano的東西,把它刪了!替換成壓縮包里的文件,并重命名為theano

2. 添加環境變量: ? ?path: C:/Anaconda/MinGW/bin; C:/Anaconda/MinGW/x86_64-w64-mingw32/lib;

3. 新建環境變量: ?PYTHONPATH: C:/Anaconda/Lib/site-packages/theano;

好了,理論上theano也安裝成功了,測試一下看~在Anaconda Prompt的命令行中輸入“python”,回車,然后輸入“import theano”,回車。如果你看到“>>>”三個箭頭,沒有別的亂七八糟的東西了,就說明:你!安!裝!成!功!啦!

至此,你已經可以運行keras的神經網絡程序了,但是有一個小瑕疵:會警告你cl.exe找不到。你可以不理它,我提供解決方案是

去電腦的C盤目錄下檢索“cl.exe”,會出來幾個cl.exe

靠譜的路徑名是:C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64

當然啰,前提是你電腦里面裝了Visual Studio (VS),如果沒裝的話也沒關系,裝一下就好了啰。提供VS各個版本的免費下載地址:Visual Studio 各版本下載

下載完,把搜索到的cl.exe的路徑添加到系統路徑Path里頭,這個警告就會消失啦~

(可選)加速庫CuDNN

官網下載需要注冊賬號申請,兩三天批準。網盤搜索一般也能找到最新版。

Windows目前就是cudnn-7.0-win-x64-v5.0-prod.zip。

下載解壓出來是名為cuda的文件夾,里面有bin、include、lib,將三個文件夾復制到安裝CUDA的地方覆蓋對應文件夾,默認文件夾在:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA

添加環境變量:? ? path:?C:\Anaconda2;C:\Anaconda2\Scripts;


Cool,整個64位的python·keras就配置完成了,也就是說可以運行你的深度學習代碼啰:)

至于說找keras的源代碼,去這兒里隨便挑一個,一般就用mnist_cnn.py。








如果你根據“干貨”成功地配完了keras,那么就別往下看了,要是沒成功,下面就是更加詳細的步驟、遇到的錯誤和對應解決方案。供你參考:)

安裝python

我選擇的版本是2.7.11版本,注意了!不要裝Python3.5.1,不然后續的深度學習配置各種坑。在Python的官方主頁下載Python安裝包。下載地址是:https://www.python.org/downloads/

下載2.7.11,不要追求最新的!!

選擇64位!選擇64位!選擇64位!說三遍,不然到時候數據量大了就MemoryError了!

就是因為這個原因我要重新裝python了!呵呵
我是Windows 7 64位的機子

當然嘍,我當初沒有裝64位是有原因的,因為在運行mnist手寫字體識別的神經網絡時出現這個問題,那時我為了圖簡單,就干脆裝了32位的python,哎,現在還得填坑!!!

64位的ImageDataGenerator會報錯,但是你最后只要別用這個模塊就好啦

在下載完成之后,一直點擊下一步就OK了。注意:安裝在系統盤!!

這兒選擇just for me

在安裝完成之后,我們需要手動添加環境變量:鼠標右鍵我的電腦 ?-> 屬性 -> 點擊高級系統設置 -> 點擊環境變量 -> 點擊PATH -> 在最后面加上我們的Python安裝路徑 -> 點擊確定。反正就是Python27這個文件夾的系統目錄

我的路徑是:C:\\Python27

怎么看你有沒有裝成功咧,打開cmd命令行界面,輸入python,返回了版本號,就可以啦

cmd怎么開我就不說了唄~

python安裝成功!

安裝pip

pip對于python就相當于apple store對于iPhone,是各個包的下載中心,剛剛下完的python相當于一個裸機,需要在pip里面下載一些深度學習需要的包~所以現在我們先下載安裝pip。

同樣需要在Python的官網上去下載,下載地址是:https://pypi.python.org/pypi/pip#downloads

自動跳轉到這兒,下這個好了

下載完,解壓到python27文件路徑下

解壓到這兒

打開,里面有一個setup.py,復制當前路徑,在cmd下cd到這兒

cd ?C:\\Python27\\pip-8.1.1

到了C:\\Python27\\pip-8.1.1后,輸入

python setup.py install

就醬,輸兩行代碼
這種情況就是“沒有配環境變量”!python安裝的時候也一樣

--------我是分割線---------

當然最近還出現了一個新的錯誤,就是這個

ImportError: No module named setuptools

要是你沒遇到最好,直接跳到下一個分割線,遇到的話解決方法是:

直接用瀏覽器訪問地址:https://bootstrap.pypa.io/get-pip.py,直接打開了get-pip.py的源代碼,可以直接把內容拷貝出來,然后在本地創建get-pip.py。就是新建一個txt文檔,粘貼內容,重命名成get-pip.py,注意:文件類型改成了.py

運行cmd,cd到get-pip.py所在目錄(我是C:\\Python27),運行代碼:

運行get-pip.py,安裝完成:)

--------我是分割線---------

按照之前介紹的添加環境變量的方法,我們在PATH最后添加:

C:\\Python27\\Scripts;

然后看看到底pip安裝成功了沒,在cmd里面輸入pip,會出現這個

good for u, 你成功了!

安裝深度學習框架keras

上面都是基本的準備東西,要是你已經跪在前面了,那。。只能。。自求多福:) 啰,我現在要開始正式講keras怎么用了!

注意一點:python以及keras的所有代碼都在cmd界面運行的~

我們可以先看看現在python有些什么包,在cmd下輸入:

pip list

現在有pip,setuptools,wheel這仨

我們需要先安裝scipy和numpy這兩個包,注意:這兩的比較奇葩,用pip安裝會給你出來一堆錯誤,建議用網上的scipy.exe和numpy.exe無腦裝,省事兒。你可能在網上會看到whl等格式文件和所謂的去“官網”安裝,我只能忠告一下:不要入坑。。。:)

numpy.exe 64位下載地址:http://vdisk.weibo.com/s/sTuT3rm3Mg2jC

scipy.exe 64位下載地址:http://download.csdn.net/download/feixueyinjiayue/9027923

也許scipy.exe需要注冊賬號,就提供一下我的這兩個exe的百度云鏈接:numpy.exescipy.exe

下載完這兩個exe,都是無腦安裝的,一直摁next即可。然后在cmd下輸入“pip list”查看是否安裝完,如果成功了是這個界面

階段性開心一下:)

接下來我介紹pip這個appstore怎么用。也就是一句話的事兒,在cmd中輸入:pip install **(你想下載的包),回車就好了,確保有網,就可以自動開始下載安裝啰,超級簡單的。舉例:

現在安裝完scipy和numpy,我就可以下載安裝keras了,就這樣

pip install keras

這樣keras就成功安裝完了。。。


調試keras

首先,你得有一個卷積神經網絡的keras樣例代碼,一般來說比較推薦minst的,我可以提供代碼和數據,我想這個網站要成為下一步學習的墊腳石了,因為要開始小小地改代碼了。

http://keras.io/

這個網站相當于keras的詳細使用文檔,是學習keras過程中避不開的參考

有了代碼和數據,小改一下數據的路徑,然后就開始解決一堆報錯的問題了嘿嘿嘿:

錯誤1:sorry, unimplemented: 64-bit mode not compiled in

原因:32位的gcc不能編譯64位程序。

解決方法:下載并安裝64位gcc到E:\\MinGW\\bin,需要修改環境變量。(親測不可行,呵呵)

錯誤2:'g++' is not recognized as an internal or external command.

我就是用我已經安裝的codeblocks的g++.exe所在的路徑放到環境變量里頭就行了

錯誤3:TypeError: max_pool_2d() got an unexpected keyword argument 'mode'

這個就是keras內部的函數定義的時候形參多了一個“mode”,找到這個函數,把mode='average_exc_pad'這項刪了即可;找函數的方法如下圖,函數在theano_backend.py這個文件內(C:\\Python27\\Lib\\site-packages\\keras\\backend\\theano_backend.py),用搜索找到pool_out = downsample.max_pool_2d這個位置,把該刪的刪掉!

這個需要修改一下keras內部的代碼~

--------我是分割線---------

如果實在遇到的坑太多,就換個方法,要是正常的話直接跳到下一個分割線就好了(額)

Anaconda Python Distribution安裝

下載一個Anaconda Python Distribution,網址:https://www.continuum.io/downloads#_windows

無腦安裝,一直next

安裝完成后,該有的基礎包就都有了,安裝完anaconda,就相當于安裝了Python、IPython、集成開發環境Spyder、一些包等等。然后打開Anaconda Prompt,cd到py文件的路徑,輸入“python **.py”,注意:這兒和cmd的命令相比多了一個python。要是你不加python,會拒絕訪問。

打開Anaconda Prompt,輸入命令,就可以運行py文件了

然后在打開的Anaconda Prompt命令行中輸入“pip install keras",這樣keras直接就安裝完了,好方便!

--------我是分割線---------

好了,我們繼續填坑。

錯誤4:g++ not detected !

前提是我已經將E:\\Program Files (x86)\\CodeBlocks\\MinGW\\bin和lib, include加入系統路徑了。呵呵

找不到g++!!!!

解決辦法:在[Anaconda2] 中輸入命令“conda install mingw libpython

成功解決g++ not detected問題

錯誤5:Exception: Compilation failed (return status=-1073741701)

錯誤提示長這樣

-fPIC問題的解決:看不懂,媽的

我的解決方法:首先不要用codeblocks的g++.exe,用Anacoda2中自帶的MinGW的g++.exe,把這個路徑加入環境變量

地址是C:\\Users\\Administrator\\Anaconda2\\MinGW\\x86_64-w64-mingw32\\bin,然后呢,錯誤提示變成了這樣

error: CreateProcess: No such file or directory

對于這種錯誤4,錯誤5,我要提供一個終極解決方案啦!!!(不能忍了)

64位WIN7上成功安裝theano,并運行了g++, GPU

我們已經安裝完Anaconda了,然后現在要重!新!安!裝!theano!

1. 下載theano的zip文件,解壓到.../Anaconda/Lib/site-packages/theano(文件里面有個theano的文件夾,拿出來放在E:/Anaconda/Lib/site-packages里面)目錄下。

2. 添加環境變量: ? ?path: E:/Anaconda/MinGW/bin;E:/Anaconda/MinGW/x86_64-w64-mingw32/lib;

(32bit ?E:/Anaconda/MinGW/i686-w64-mingw32/lib;)

新建環境變量: ?PYTHONPATH: E:/Anaconda/Lib/site-packages/theano;

g++.exe,theano這種問題完美解決!收~

至此,我所有的問題都順利的解決了,你呢?是不是也可以成功地訓練你的神經網絡了呢?

歷時72個小時,終于又看到了這個親切的畫面,開心死了!


寫個彩蛋

對于64位的Anaconda,如果python要讀入MATLAB的數據文件.mat,好像不能再用32位的那句代碼了,因為會出現“Python.exe已停止工作”的錯誤。

sio.loadmat()不好使了

解決方法是換一個讀入方法唄~

h5py.File()

這個函數有很多優點哦:

1. 可以讀入MATLAB Version 7.3 or later (save -v7.3) Variables can exceed 2GB on 64-bit systems ! 這個版本的mat文件能儲存的數據量超級大。

2. 輸入的矩陣就是mat內部存的形式,舉例:mat文件里面有一個A(3*2)的變量,sio.loadmat()讀入的是一個一維的(1*6)的數組,然后還得reshape()一下變成(3*2)的;h5py.File()直接就讀入一個(3*2)的數組。


剛剛測試了一下花了我72小時的64·python·keras,真的可以利用的內存爆大誒!!!

你看!導入的訓練集14w+,測試集20w+

祝一切順利~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容