2017-04-26 61 views
0

我使用Python 2.7,Windows 7和Keras 1.2.1(Keras2似乎與不同的PC/Python配置有很多兼容性問題,所以我被推薦爲使用1.2.1),我使用的是從實踐深度學習的程序員,第1場的腳本 當試圖實現Keras時遇到錯誤

import utils; reload(utils) 
from utils import plots 

我「M得到的錯誤是如下

Problem occurred during compilation with the command line below: "g++" -shared -g -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -DMS_WIN64 -I"c:\python27\lib\site-packages\numpy\core\include" -I"c:\python27\include" -I"c:\python27\lib\site-packages\theano\gof" -L"c:\python27\libs" -L"c:\python27" -o C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-2.7.12-64\lazylinker_ext\lazylinker_ext.pyd C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-2.7.12-64\lazylinker_ext\mod.cpp -lpython27

我可以」 t解讀這意味着什麼應該有一箇中文留言板。

它似乎是g ++的問題,因爲我得到的以前的警告如下: WARNING (theano.configdefaults): g++ not available, if using conda: conda install m2w64-toolchain``。儘管之後安裝了m2w64工具鏈,但我繼續得到相同的警告。

+1

我不確定它是一樣的問題,因爲它似乎缺少一個實際的錯誤信息....但是,如果它是一個g ++的問題,你可能需要有visual studio已安裝或兼容的C++編譯器。 - 看到你需要的版本:https://wiki.python.org/moin/WindowsCompiles –

+0

是的,這是一個g + +的問題,因爲我得到的以前的警告如下: '警告(theano.configdefaults):g + +不可用,如果使用conda:conda install m2w64-toolchain'。儘管之後安裝了m2w64工具鏈,但我仍然收到相同的警告。所以我猜這是路徑問題? – Moondra

+0

我已經安裝了Microsoft Visual C++,因爲我需要一些其他框架。 – Moondra

回答

0

我解決了這個問題。

我重新安裝了Anaconda。 然後通過命令行我寫了conda install m2w64-toolchain 這次我沒有收到消息說明m2w64已經安裝。我假設這是一個路徑問題,這次重新安裝一切從一開始也創建了一個新的路徑?

+0

它解決了你的問題嗎? –

+0

是的,我解決了這個問題。但我似乎無法解決這個問題。我必須再等兩天。 – Moondra

+0

是不是隻是檢查你自己的答案是有效的? –

1

一些有趣的事情,而嘗試配置theano和keras我瞭解到:

C++/G ++

  • 根據您的Python版本,您必須安裝C的相應版本++編譯器,或Visual Studio。例如:Python 2.7需要C++ 9.0(Visual Studio 2008)。但是Python 3.5需要C++ 14.0(Visual Studio的2015年) - 在這裏看到更多:https://wiki.python.org/moin/WindowsCompilers

  • 我也只好裝MinGW的爲G ++編譯器:https://nuwen.net/mingw.html

  • 即使它正確安裝,您可能會看到一個關於hypot的錯誤。這個問題顯示了兩種可能的解決方案:g++ error on import of Theano on Windows 7

  • 我試着通過Conda安裝所有東西,但是所有的計算都比大陸遠離對方慢。然後我放棄了conda,並通過標準的python安裝了所有東西。 (先是python,然後是numpy,然後是scipy,然後是theano,然後是keras)。不知道MinGW是在numpy/scipy之前出現的,但我認爲它之前是這樣。

BLAS/LAPACK

  • 與NumPy和theano可能會警告您沒有LAPACK/BLAS安裝。爲此,我使用了這裏的numpy和scipy庫,它們非常快速:http://www.lfd.uci.edu/~gohlke/pythonlibs/

  • 另一種選擇是在安裝numpy和scipy之前直接從Intel安裝MKL。

路徑問題/無效令牌 - LDFLAGS

  • 避免安裝任何東西,包括MKL,在名稱中含有空格的文件夾!這肯定會混淆theano/numpy。

  • 如果文件夾中有空格,並且該錯誤中描述了ldflags var,那麼您可能會收到「無效標記」錯誤。爲了解決這個問題,或者在沒有空格的文件夾中重新安裝mkl庫,或者使用[blas]配置和ldflags變種,在theano主文件夾中配置.theanorc文件。 (請看這裏:Receive AssertionError while optimizing convolution in theano

  • 由於我不願意在另一個文件夾中重新安裝MKL,我學會了創建Windows的符號鏈接。 (在上面的答案)

  • 在theano配置與空間替換的文件夾,並在numpy的配置文件(__config__.py),你可以看到它與np.__config__.show()內容。 (見上面的答案)

+0

我使用Python 3.6(也安裝了2.7),但我使用2.7版本的筆記本電腦,所以被迫適應。 Keras與我的3.6版本,所以我希望我沒有遇到兼容性問題。我似乎已經安裝了Visual Studio 2008。 – Moondra

+0

我建議你使用python 3.5來代替(我沒有閱讀keras/theano/tensorflow兼容的任何地方與3.6,但他們指定3.5)。對於python 3.5,你需要C++ 14.0(VS 2015)。 –

相關問題