花費了三天時間,太辛苦了。
首先劇透:有很多人說theano不支持python3.6,我試過了,是的,我失敗了,如果各位不信也可以再試試。
同時我下載了anaconda python2.7,然而,我還是失敗了。
是的,我放棄了theano的安裝,太挫敗了,我可能會用cpu版本跑一跑論文開源代碼。
但是,我還是要寫一寫我的安裝流程,可能是我的電腦出了問題,各位要是有人成功,‘家祭無忘告乃翁’
主體內容直接來自於 https://www.cnblogs.com/XUEYEYU/p/10914689.html#4431269,我對於自己所遇到的問題在進行了說明。
1
pip install theano
安裝theano
如果只用cpu,在這裏就ok了
2,更改配置文件
參考
http://deeplearning.net/software/theano/tutorial/using_gpu.html#gpuarray
在當前用戶根目錄下新建文件
linux自然是在~/
windows 是在系統盤裏users(用戶)目錄下,當前用戶名的目錄下
新建 .theanorc, 注意有個點
在windows上必須有文件名,故.theanorc.txt也可
然後在新建的文件裏輸入
[global]
device = cuda
floatX = float32
保存後即可調用gpu
如果進行了搜索,可以發現有各種五花八門的設置方法,由於我沒有成功過,並不清楚哪種是對的,大家可以去github.theano.issues
搜索,引用中的網站也是官方的內容,但似乎內容有點舊了。
這時在python裏嘗試使用theano
import theano
報錯。說沒有安裝pygpu或者版本過低這就需要執行第三步
這時進行import
應該是沒有問題的,如果安裝遇到了問題可以進行刪除重新安裝或者麻煩自行谷歌,在import
成功後不要高興的太早,引用中所說的版本過低其實直接由warning打印:
#我的筆記本警告
WARNING (theano.configdefaults): g++ not available,
#我的筆記本缺少太多東西,服務器裏會發出警告,大致如下
Warning:pygpu version...
那就安唄,再接再厲,你可以的!
3
下載libgpuarray
libgpuarray Required for GPU/CPU code generation on CUDA and OpenCL
devices (see: GpuArray Backend). 下載https://github.com/Theano/libgpuarray/releases
然後解壓我是在windows裝,相對來說比較麻煩
可能需要vsstudio和cmake
下載cmake
https://cmake.org/download/
cmake有cmakegui方便使用
這裏注意到visual studio是必須的,我原先爲vs2013版本,但是會提醒visual C++ 14.0 is requeired
,安裝visual c++ 14.0是沒用的,必須安上visual studio 2015(14.0)
才行,這裏再說一句,我只安裝了要求的版本,我不知道高級版本支不支持。
visual studio各個版本的下載連接
4
打開cmakegui
點擊第一行的browse source 。。。 選擇剛纔解壓的libgpuarray目錄下
然後點擊下方的configure
這裏選擇一會要編譯的工具。根據自己安裝的版本選擇。這裏選擇架構
剩下的可默認,也可指定編譯器。然後點擊finish就會自動configure
然後點擊configure旁邊的generate
然後點擊open Project
就會打開工程
64位機選擇X64即可
注意,Cmake_INstall_prefix 是表示安裝在哪裏一定要注意後面會用到
這裏選擇 all_build右鍵重新生成
有概率會編譯失敗,重新生成即可
如果有錯誤可以看輸出的情況再次考慮
比如mako包沒裝,就需要pip install mako
注意這裏mako安裝包不會直接提示,而只是簡單的進行報錯,要記得點擊錯誤就會看到錯誤信息,使用pip mako
即可解決
5
完成後,進入到之前解壓的libgpuarray目錄裏
然後在cmd裏打開
python setup.py build
在這裏如果沒有安裝正確的visual studio 2015(14.0)
會報錯
Visual C++ 14.0 is required. Please...
完成build,在使用指令python setup.py install
在這裏 我出現了 gpuarray.lib的問題,然而這個文件就在libgpuarray-0.7.6\lib\Release下
我把這個文件拷出到上一級目錄,也就是libgpuarray-0.7.6\lib下,再次build就不出錯了
我下載的libgpuarray並沒有release這個文件夾,只有Debug文件夾,把其中後綴爲.lib
拉到上一級目錄就沒有報錯了。
安裝完成後,可以看到在
Python37\Lib\site-packages 目錄裏有了 pygpu的包
這時,在python裏import pygpu就不會報錯了
是的,我看到了我的目錄中有了pygpu包,但是import的時候…報錯了。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\python36_\lib\site-packages\pygpu-0.7.6-py3.6-win-amd64.egg\pygpu\__init__.py", line 7, in <module>
from . import gpuarray, elemwise, reduction
ImportError: DLL load failed: 找不到指定的模塊。
到這裏其實我就可以結束了…
但是 參考文的作者還沒結束
6
打開安裝的libgpuarray目錄,發現有bin,include,lib三個庫
將這幾個文件拷貝到或者移動到
xxx\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\x86_64-w64-mingw32
文件夾中,也就是Gcc或者G++等 mingww64編譯器的include庫
是的,這裏我先去解壓文件裏去找了,裏面沒有include
這個文件夾
但是,如果你還記得上面有一句十分重要的話
Cmake_INstall_prefix 是表示安裝在哪裏一定要注意後面會用到
在排除各種問題後,我找到了這句話,好興奮啊!
啊啊啊啊啊啊!
F**K!
我的C:\Program Files
或者C:\Program Files(x86)
都沒有相應的安裝文件
呵呵呵呵呵呵呵呵呵呵呵呵
但是不能氣餒是不是,於是我又去嘗試anaconda方法,我也不知道自己是多辣雞了
總之結果又是
呵呵呵呵呵呵呵呵呵呵呵呵
theano你失去我了!
上面就是我安裝theano的經歷,但是如果有人在win10下python3.6版本成功安裝了theano,十分希望你能分享給我你的方法,或者告訴我上述步驟我哪裏做錯了。
謝謝各位!
Live long and prosper