Установил g ++ по предложению theano.Теперь Теано не работает - PullRequest
0 голосов
/ 15 февраля 2019

В Windows 10, после успешной установки tensorflow gpu, и keras gpu, я установил theano gpu, используя:

conda install theano pygpu

Все по-прежнему работало нормально, tensorflow gpu, keras gpu и т. Д. Я запустил простопример в theano и при выполнении строки в jupyter,

import numpy
import theano.tensor as T
from theano import function

выдает предупреждение:

WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`
C:\Anaconda3\lib\site-packages\theano\configdefaults.py:560: UserWarning: DeprecationWarning: there is no c++ compiler.This is deprecated and with Theano 0.11 a c++ compiler will be mandatory
  warnings.warn("DeprecationWarning: there is no c++ compiler."
WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.
WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

Поэтому я решил установить g++, используя conda как было предложено:

conda install m2w64-toolchain

Теперь, когда я запускаю ту же строку в theano,

import numpy
import theano.tensor as T

, я получаю ошибку:

You can find the C code in this temporary file: C:\Users\IVANFI~1\AppData\Local\Temp\theano_compilation_error_fq4oz7pp
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
C:\Anaconda3\lib\site-packages\theano\gof\lazylinker_c.py in <module>()
     80                     version,
---> 81                     actual_version, force_compile, _need_reload))
     82 except ImportError:

ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
C:\Anaconda3\lib\site-packages\theano\gof\lazylinker_c.py in <module>()
    104                         version,
--> 105                         actual_version, force_compile, _need_reload))
    106         except ImportError:

ImportError: Version check of the existing lazylinker compiled file. Looking for version 0.211, but found None. Extra debug information: force_compile=False, _need_reload=True

During handling of the above exception, another exception occurred:

Exception                                 Traceback (most recent call last)
<ipython-input-12-29f575dfe616> in <module>()
      1 import numpy
----> 2 import theano.tensor as T

C:\Anaconda3\lib\site-packages\theano\__init__.py in <module>()
    108     object2, utils)
    109 
--> 110 from theano.compile import (
    111     SymbolicInput, In,
    112     SymbolicOutput, Out,

C:\Anaconda3\lib\site-packages\theano\compile\__init__.py in <module>()
     10 from theano.compile.function_module import *
     11 
---> 12 from theano.compile.mode import *
     13 
     14 from theano.compile.io import *

C:\Anaconda3\lib\site-packages\theano\compile\mode.py in <module>()
      9 import theano
     10 from theano import gof
---> 11 import theano.gof.vm
     12 from theano import config
     13 from six import string_types

C:\Anaconda3\lib\site-packages\theano\gof\vm.py in <module>()
    672     if not theano.config.cxx:
    673         raise theano.gof.cmodule.MissingGXX('lazylinker will not be imported if theano.config.cxx is not set.')
--> 674     from . import lazylinker_c
    675 
    676     class CVM(lazylinker_c.CLazyLinker, VM):

C:\Anaconda3\lib\site-packages\theano\gof\lazylinker_c.py in <module>()
    138             args = cmodule.GCC_compiler.compile_args()
    139             cmodule.GCC_compiler.compile_str(dirname, code, location=loc,
--> 140                                              preargs=args)
    141             # Save version into the __init__.py file.
    142             init_py = os.path.join(loc, '__init__.py')

C:\Anaconda3\lib\site-packages\theano\gof\cmodule.py in compile_str(module_name, src_code, location, include_dirs, lib_dirs, libs, preargs, py_module, hide_symbols)
   2394             # difficult to read.
   2395             raise Exception('Compilation failed (return status=%s): %s' %
-> 2396                             (status, compile_stderr.replace('\n', '. ')))
   2397         elif config.cmodule.compilation_warning and compile_stderr:
   2398             # Print errors just below the command line.

. collect2.exe: error: ld returned 1 exit statusompiledir_Windows-10-10.0.17134-SP0-Intel64_Family_6_Model_158_Stepping_9_GenuineIntel-3.6.6-64/lazylinker_ext/mod.cpp:976: undefined reference to `__imp__Py_TrueStruct'Error'e undefined references to `__imp__Py_NoneStruct' followow

Удаление

conda remove m2w64-toolchain

Не помогает.Кажется, что theano теперь повреждено навсегда. Как мне восстановить theano на работу?

1 Ответ

0 голосов
/ 14 апреля 2019

Чтобы вернуться к исходному режиму на основе NumPy, просто настройте theano, чтобы не использовать компилятор.

Создайте C:\\Users\\username\\.theanorc.txt файл с:

[global]
cxx=

Подробнее о theano config

...