1. 程式人生 > >Windows 10安裝配置Theano(轉載)

Windows 10安裝配置Theano(轉載)

前兩天,看書的時候,測試書中的程式碼。結果,各種報錯,更加無語的是Python明明安裝了Theano模組,匯入模組的時候,還是報錯。報錯資訊如下:

這個是在PyCharm中執行時的報錯資訊You can find the C code inthis temporary file: c:\users\darker\appdata\local\temp\theano_compilation_error_wdw7zl
Traceback(most recent call last):File"t.py", line 9,in<module>import theano
  File"D:\Python27\lib\site-packages\theano\__init__.py"
, line 110,in<module>from theano.compile import(File"D:\Python27\lib\site-packages\theano\compile\__init__.py", line 12,in<module>from theano.compile.mode import*File"D:\Python27\lib\site-packages\theano\compile\mode.py", line 11,in<module>import theano.gof.vm File"D:\Python27\lib\site-packages\theano\gof\vm.py"
, line 673,in<module>from.import lazylinker_c File"D:\Python27\lib\site-packages\theano\gof\lazylinker_c.py", line 127,in<module> preargs=args)File"D:\Python27\lib\site-packages\theano\gof\cmodule.py", line 2356,in compile_str (status, compile_stderr.replace('\n','. ')))Exception
:Compilation failed (return status=1): C:\Users\Darker\AppData\Local\Theano\compiledir_Windows-10-10.0.10586-AMD64_Family_22_Model_0_Stepping_1_AuthenticAMD-2.7.13-64\lazylinker_ext\mod.cpp:1:0: sorry, unimplemented:64-bit mode n.^include <Python.h>這個是命令列匯入模組的報錯資訊 E:\Projects\Python\20171209>python Python2.7.13(v2.7.13:a06454b1afa1,Dec172016,20:53:40)[MSC v.150064 bit (AMD64)] on win32 Type"help","copyright","credits"or"license"for more information.>>>import theano You can find the C code inthis temporary file: c:\users\darker\appdata\local\temp\theano_compilation_error_n7jfos Traceback(most recent call last):File"<stdin>", line 1,in<module>File"D:\Python27\lib\site-packages\theano\__init__.py", line 110,in<module>from theano.compile import(File"D:\Python27\lib\site-packages\theano\compile\__init__.py", line 12,in<module>from theano.compile.mode import*File"D:\Python27\lib\site-packages\theano\compile\mode.py", line 11,in<module>import theano.gof.vm File"D:\Python27\lib\site-packages\theano\gof\vm.py", line 673,in<module>from.import lazylinker_c File"D:\Python27\lib\site-packages\theano\gof\lazylinker_c.py", line 127,in<module> preargs=args)File"D:\Python27\lib\site-packages\theano\gof\cmodule.py", line 2356,in compile_str (status, compile_stderr.replace('\n','. ')))Exception:Compilation failed (return status=1): C:\Users\Darker\AppData\Local\Theano\compiledir_Windows-10-10.0.10586-AMD64_Family_22_Model_0_Stepping_1_AuthenticAMD-2.7.13-64\lazylinker_ext\mod.cpp:1:0: sorry, unimplemented:64-bit mode n.^include <Python.h>>>>
Copy

向度娘和谷哥詢問,結果沒找到怎麼解決方案。於是就順著潮流,走進Anaconda的懷抱。它裡面集成了很多關於python科學計算的第三方庫,用起來方便。

安裝Anaconda

英文參考文件:http://deeplearning.net/software/theano/install_windows.html

1、下載Anaconda安裝包

我的系統是64位的,所以我選擇的是包含 Python 2.x 版本的Anaconda,也就是Anaconda2-5.0.1-Windows-x86_64.exe,其大小為499 MB (524,040,968 位元組), 下載連結是https://repo.continuum.io/archive/Anaconda2-5.0.1-Windows-x86_64.exe。

2、移除Python環境變數

網上很多都是把之前的Python解除安裝,我感覺不需要,把相關的Python的環境變數刪除就可以了。例如:我的Python安裝到D盤的根目錄,我只需要把環境變數中的Python變數刪除就可以了,等需要的時候,添上就又可以運行了。

3、安裝Anaconda

需要注意的是安裝位置的剩餘空間應該至少有3GB,因為安裝的時候,臨時檔案釋放到安裝的目錄中,再加上安裝後的2.3GB(我安裝的版本的大小)。如果中間空間不足,這就很尷尬,安裝會直接中斷,然後需要重新安裝。安裝很耗費時間。我安裝的位置是D盤根目錄,即 D:\Anaconda2 。之後就是漫長的等待了,我的電腦比較低端,當時安裝了應該有1個多小時吧。

4、安裝MinGW

開啟命令列或者開啟剛才安裝的Anaconda Prompt,輸入conda install mingw libpython ,等待安裝完成。之後,MinGW會安裝到Anaconda目錄下。

5、安裝Theano

使用 pip 安裝Theano,在命令列中輸入 pip install -i https://pypi.douban.com/simple Theano ,這個是借用豆瓣的源,可以加速安裝,適用於Python官網網路不好的時候。也可以直接輸入pip install Theano 回車。

6、環境變數配置

全部安裝好後,一共需要配置下列這些環境變數。

D:\Anaconda2
D:\Anaconda2\Scripts
D:\Anaconda2\Library\bin
D:\Anaconda2\MinGW\bin
D:\Anaconda2\MinGW\x86_64-w64-mingw32\lib
Copy

有的文章中寫到新建環境變數值,把安裝的Theano新增進去。操作步驟(Windows 10):此電腦 -> 系統屬性 -> 高階系統設定 -> 環境變數。在系統變數上點選“新建”。

變數名:PYTHONPATH 
變數值:D:\Anaconda2\Lib\site-packages\theano  (此為我的路徑)
Copy

另外需要在使用者根目錄下新建 .theanorc.txt ,按“Win+R”快捷鍵,然後輸入“cmd”回車後的第一個目錄就是使用者根目錄。例如:C:\Users\Darker ,這就是我的使用者根目錄。下面是.theanorc.txt 檔案內容,注意,cxxflags=-ID:\Anaconda2\MinGW 紅色部分是你安裝的目錄。

[global] 
openmp=False[blas] 
ldflags=[gcc] 
cxxflags=-ID:\Anaconda2\MinGW
Copy

測試程式碼

用上一篇的文章中的那個程式碼測試。程式碼為:

import theano
from theano import tensor
# declare two symbolic floating-point scalars
a = tensor.dscalar()
b = tensor.dscalar()# create a simple expression
c = a + b
# convert the expression into a callable object that takes(a,b)# values as input and computes a value for c
f = theano.function([a, b], c)# bind 1.5 to 'a' 2.5 to 'b' and evaluate 'c'

result = f(1.5,2.5)print(result)
Copy

環境還有有點問題,每次都有這個警告,不過能執行得出結果,說明了Theano配置成功了。