2014-06-25 26 views
3

当运行theano.test(),约优化失败产生一些错误消息如下所示:theano.test():优化失败由于一个Ubuntu操作系统上constant_folding(ubuntu上)

ERROR (theano.gof.opt): Optimization failure due to: constant_folding 

ERROR (theano.gof.opt): TRACEBACK: 

ERROR (theano.gof.opt): Traceback (most recent call last): 

File "/usr/local/lib/python2.7/dist-packages/theano/gof/opt.py", line 1286, in process_node 
replacements = lopt.transform(node) 
File "/usr/local/lib/python2.7/dist-packages/theano/tensor/opt.py", line 3996, in constant_folding 
no_recycling=[]) 

File "/usr/local/lib/python2.7/dist-packages/theano/sandbox/cuda/__init__.py", line 237, in make_thunk 
compute_map, no_recycling) 

File "/usr/local/lib/python2.7/dist-packages/theano/gof/op.py", line 606, in make_thunk 
output_storage=node_output_storage) 

File "/usr/local/lib/python2.7/dist-packages/theano/gof/cc.py", line 948, in make_thunk 
keep_lock=keep_lock) 

File "/usr/local/lib/python2.7/dist-packages/theano/gof/cc.py", line 891, in __compile__ 
keep_lock=keep_lock) 

File "/usr/local/lib/python2.7/dist-packages/theano/gof/cc.py", line 1322, in cthunk_factory 
key=key, fn=self.compile_cmodule_by_step, keep_lock=keep_lock) 
File "/usr/local/lib/python2.7/dist-packages/theano/gof/cmodule.py", line 996, in module_from_key 
module = next(compile_steps) 

File "/usr/local/lib/python2.7/dist-packages/theano/gof/cc.py", line 1237, in compile_cmodule_by_step 
preargs=preargs) 

File "/usr/local/lib/python2.7/dist-packages/theano/sandbox/cuda/nvcc_compiler.py", line 444, in compile_str 
return dlimport(lib_filename) 

File "/usr/local/lib/python2.7/dist-packages/theano/gof/cmodule.py", line 284, in dlimport 
rval = __import__(module_name, {}, {}, [module_name]) 

ImportError: ('/home/csz/.theano/compiledir_Linux-3.11.0-20-generic-x86_64-with-Ubuntu-12.04-precise-x86_64-2.7.3-64/tmpcF2It0/3ea6a99a1a8d1d8523de8d72c27b90f4.so: undefined symbol: _Z25CudaNdarray_CopyFromArrayP11CudaNdarrayP23tagPyArrayObject_fields', '[GpuFromHost(TensorConstant{0.0})]') 

有没有人知道解决这些问题的方法,或究竟发生了什么?

+1

我在CPU上的Windows 10 x64上也有这个问题 – rilut

回答

2

这可能是由很多事情造成的。该错误与GPU有关。所以首先,确保你可以编译nvidia的例子,并且它们运行良好。可以肯定这不是问题。

问题是Theano无法导入它编译的GPU模块,因为他没有找到它需要的符号。这个缺少的符号“_Z25CudaNdarray_CopyFromArrayP11CudaNdarrayP23tagPyArrayObject_fields”位于Theano已经预编译的共享库中。

什么是您的操作系统?确保更新到Theano的最新开发版本。最近有一个修复程序(星期一,如果我的记忆是确切的),可以在某些操作系统上解决此问题。

+0

感谢您的建议。我可以编译nvidia示例并升级最新版本的Theano,但在theano.test()中仍然存在错误。但我可以使用GPU来运行我的程序。 cpu设备也会导致这个问题:ImportError:('编译节点时发生以下错误',Dot22(Subtensor {int64:int64:}。0,W),'\ n','/home/csz/.theano /compiledir_Linux-3.11.0-20-generic-x86_64-with-Ubuntu-12.04-precise-x86_64-2.7.3-64/tmppzxNss/443217667310e7697fed0ce96e26ea6e.so:undefined symbol:_gfortran_st_write_done','[Dot22(,W)]') –

+2

我找到了使用Theano标志“blas.ldflags = -lblas -lgfortran”的解决方案。感谢您的帮助! –

+0

你有2个问题。问题中的第一个关于GPU。看来Theano升级固定那一个。很高兴你能找到解决关于gfortran的第二个问题。 – nouiz