Я бегу лазаньи / nolearn, который использует theano.
Особенно трудно было установить и скомпилировать theano. Следующая ошибка компиляции происходит после установки 64-битного компилятора g ++.
Помощь очень ценится. Спасибо!
Проблема произошла во время компиляции с командной строкой ниже:
C:\MinGW\bin\g++.exe -shared -g -march=corei7-avx -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt --param l1-cache-size=0 --param l1-cache-line-size=0 --param l2-cache-size=256 -mtune=generic -D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -DMS_WIN64 -IC:\Users\aleja_000\Anaconda\lib\site-packages\numpy\core\include -IC:\Users\aleja_000\Anaconda\include -o C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\lazylinker_ext.pyd C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\mod.cpp -LC:\Users\aleja_000\Anaconda\libs -LC:\Users\aleja_000\Anaconda -lpython27
Traceback (most recent call last):
File "C:\Users\aleja_000\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3032, in run_code
===============================
C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\mod.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in
#include <Python.h>
^
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-1e86b04c8a9c>", line 6, in <module>
from lasagne.layers import DenseLayer
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "c:\users\aleja_000\anaconda\src\lasagne\lasagne\__init__.py", line 5, in <module>
from . import nonlinearities
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "c:\users\aleja_000\anaconda\src\lasagne\lasagne\nonlinearities.py", line 6, in <module>
from theano.tensor.nnet import sigmoid
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\__init__.py", line 55, in <module>
from theano.compile import (
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\compile\__init__.py", line 9, in <module>
from theano.compile.function_module import *
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\compile\function_module.py", line 17, in <module>
import theano.compile.mode
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\compile\mode.py", line 11, in <module>
import theano.gof.vm
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\gof\vm.py", line 654, in <module>
import lazylinker_c
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\gof\lazylinker_c.py", line 125, in <module>
preargs=args)
File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\gof\cmodule.py", line 2042, in compile_str
(status, compile_stderr.replace('\n', '. ')))
Exception: Compilation failed (return status=1): C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\mod.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in
. #include <Python.h>
. ^
.
Я нашел, в чем проблема, и хотел бы опубликовать решение. Эта конкретная проблема была вызвана тем, что файл libpythonxx.a отсутствовал в той же директории, где находится файл pythonxx.dll (в моем случае python27.dll, и поэтому я создал файл libpython27.a).
Благородная душа разместила все шаги, необходимые для установки theano на http://rosinality.ncity.net/doku.php?id=python:installing_theano (на корейском и английском). Чтобы создать такой файл, скопируйте файл pythonxx.dll во временный каталог и введите в консоли Windows следующие команды:
gendef pythonXX.dll
dlltool —as-flags = — 64 -m i386: x86-64 -k —output-lib libpythonXX.a —input-def pythonXX.def
Затем вы вставляете сгенерированный файл libpythonxx.a в тот же каталог, что и файл pythonxx.dll.
В Windows вы обычно находите этот файл в C: \ Windows \ System3, но если вы используете anaconda, как я, вы найдете его в?
C: \ Users \ xxxxx \ Anaconda \ libs, xxxxx — ваш пользователь.
Для тех, кто использует WinPython и mingw, вот дополнительная информация:
1) Даже не пытайтесь попробовать пакет mingw32 при использовании 64-битной Windows, немедленно перейдите на mingw64. Это останавливает показанную выше ошибку от возникновения
2) Для WinPython файл .theanorc или .theanorc.txt должен находиться не в вашем домашнем каталоге, а в каталоге WinPython / settings!
3) Облегчите ситуацию, используя разделители путей в стиле Linux, такие как для флага g ++ cxx = d: / dev / mingw-w64 / mingw64 / bin / g ++. Exe
4) nvcc требует, чтобы путь Windows включал файл cl.exe, который в общем случае можно найти в вашей установке VS под чем-то вроде (VSPATH) / VC / bin
С Уважением,
Г.