尝试实现Keras时遇到错误

时间:2017-04-26 16:14:17

标签: python-2.7 keras

我正在使用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,但我还是继续得到同样的警告。

2 个答案:

答案 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。我假设这是一个路径问题,这次重新安装一切从一开始也创建了一条新路径?