我正在使用Python 2.7,Windows 7和Keras 1.2.1(Keras2似乎与不同的PC / Python配置有很多兼容性问题,因此我被推荐使用1.2.1) 我正在使用实用深度学习编码器的脚本,第1部分课程
import utils; reload(utils)
from utils import plots
我得到的错误如下
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
我无法破译这意味着什么。谷歌搜索提出了一个中文留言板。
这似乎是一个g ++问题,因为之前的警告如下:
WARNING (theano.configdefaults): g++ not available, if using conda:
conda安装m2w64-toolchain``。尽管事后安装了m2w64-toolchain,但我还是继续得到同样的警告。
答案 0 :(得分:1)
我在尝试配置theano和keras时学到的一些有趣的事情:
<强> C ++ /克++ 强>
根据您的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
我还必须为g ++编译器安装MinGW:https://nuwen.net/mingw.html
即使安装正确,您也可能会看到有关hypot
的错误消息。此问题显示了两种可能的解决方案:g++ error on import of Theano on Windows 7
我尝试通过Conda安装所有内容,但所有计算速度都比各大洲之间的距离要慢。然后我放弃了conda并通过标准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之前直接从英特尔安装MKL。
路径问题/无效令牌 - ldflags
避免在名称中包含空格的文件夹中安装任何内容,包括MKL!这肯定会混淆theano / numpy。
如果文件夹中有空格,并且该错误中描述了ldflags
var,则可能会出现“无效令牌”错误。要解决此问题,请在没有空格的文件夹中重新安装mkl库,或者使用.theanorc
配置和[blas]
var配置theano主文件夹中的ldflags
文件。 (见这里:Receive AssertionError while optimizing convolution in theano)
由于我不愿意在另一个文件夹中重新安装MKL,我学会了创建指向Windows的符号链接。 (在上面的答案中)
使用theano配置中的空格替换文件夹,并在numpy配置文件(__config__.py
)中替换,您可以使用np.__config__.show()
查看其内容。 (见上面的答案)
答案 1 :(得分:0)
我解决了这个问题。
我重新安装了Anaconda。
然后通过命令行我写了[XmlElement(typeof(uint), ElementName = "Delay")]
[DefaultValue(0)]
public uint Delay { get; set; }
这次我没有收到消息说明已经安装了m2w64。我假设这是一个路径问题,这次重新安装一切从一开始也创建了一条新路径?