2016-02-26 67 views
2

我安装并使用了Theano 0.7,并且所有工作都完美无缺。但是现在为了我未来的作品的目的,我需要最新的版本,并且安装进行得很顺利。Theano从0.7升级到出血边缘之后的错误

但是当我运行这个little test(在Theano文档中找到)时,它会产生很多错误(see here for the full list)。

  • 我们可以观察到GPU检测和使用,但cuDNN不再被发现:

Using gpu device 0: GeForce GT 650M (CNMeM is enabled with initial size: 65.0% of memory, CuDNN not available)

  • 然后,我有一个进口的错误,我想这也是约cuDNN:

ImportError: ('The following error happened while compiling the node', <theano.sandbox.cuda.DnnVersion object at 0x114d32710>(), '\n', 'dlopen(/Users/FiReTiTi/.theano/compiledir_Darwin-13.4.0-x86_64-i386-64bit-i386-2.7.11-64/tmpwmA_hw/265abc51f7c376c224983485238ff1a5.so, 2): Library not loaded: @rpath/libcudnn.4.dylib\n Referenced from: /Users/FiReTiTi/.theano/compiledir_Darwin-13.4.0-x86_64-i386-64bit-i386-2.7.11-64/tmpwmA_hw/265abc51f7c376c224983485238ff1a5.so\n Reason: image not found', '[<theano.sandbox.cuda.DnnVersion object at 0x114d32710>()]')

我检查和cudnn.h仍处于/Developer/NVIDIA/CUDA-7.5/include/,在/Developer/NVIDIA/CUDA-7.5/lib/我们仍然发现libcudnn.dylib这是一个符号链接libcudnn.4.dylib,一切都在/usr/local/cuda/Developer/NVIDIA/CUDA-7.5/

任何想法?

[编辑]在我的.profile,我们发现:

export DYLD_LIBRARY_PATH=/Developer/NVIDIA/CUDA-7.5/lib:$DYLD_LIBRARY_PATH 
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH 

/usr/local/cuda/lib有一个符号链接,实际上是在/Developer/NVIDIA/CUDA-7.5/lib的cudnn库。

下面是从命令tool -L libcudnn.4.dylib结果:

libcudnn.4.dylib: 
@rpath/libcudnn.4.dylib (compatibility version 0.0.0, current version 4.0.7) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.14.0) 
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) 

这里是之间的链接:/usr/local/cuda/lib/libcudnn.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudnn.dylib,并且在/Developer/NVIDIA/CUDA-7.5/lib我有libcudnn.dylib -> libcudnn.4.dylib

[EDIT 2]

$ echo $DYLD_LIBRARY_PATH 
/usr/local/xuggler/lib:/usr/local/cuda/lib:/Applications/IMOD/lib: 

$ echo $LD_LIBRARY_PATH 
/usr/local/cuda/lib: 

[编辑3]显示Here is the last error。至少有一部分,因为这个错误出现在每个纪元。

随着ls -la /usr/local/cuda/lib

lrwxr-xr-x 1 root wheel 45B 22 fév 11:42 libcudnn.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudnn.dylib 
lrwxr-xr-x 1 root wheel 48B 26 fév 01:01 libcudnn_static.a -> /Developer/NVIDIA/CUDA-7.5/lib/libcudnn_static.a 

回答

1

这看起来像在Theano的错误。如果他们将["-Wl,-rpath,%s" % l for l in c_lib_dirs()]添加到编译参数中,它可能会工作。您应该报告上游here

如果您添加到您的LD_LIBRARY_PATH(或者DYLD_LIBRARY_PATH)环境变量的libcudnn.4.dylib路径也许工作作为解决办法,因为这是@rpath也会看,这样的路径@rpath/libcudnn.4.dylib可以解决。

+0

我检查过,所有的路径都很好。 Theano家伙也认为这是Mac OS X版本的一个错误。 – FiReTiTi

+0

@FiReTiTi:libcudnn.4.dylib在哪里?你能显示你的'LD_LIBRARY_PATH'和'DYLD_LIBRARY_PATH'吗?你能显示'otool -L libcudnn.4.dylib'的输出吗? – Albert

+0

我编辑了我的问题以回答您的问题。 – FiReTiTi