2017-02-27 140 views
1

我正在运行使用具有GPU和张量流的keras的示例深度网络脚本。它在Ubuntu上。一切从命令行运行良好;例如,我可以将任何示例网络复制到python文件并运行它并验证GPU正在使用。在Jupyter笔记本中获取'undefined symbol:cudnnCreate',但不在命令行上

问题:我已经开始了一个Jupyter笔记本玩弄一些脚本,现在我得到通知,笔记本电脑的内核已经死亡,在日志中出现以下错误显示出来:

F tensorflow/stream_executor/cuda/cuda_dnn.cc:221] Check failed: s.ok() could not find cudnnCreate in cudnn DSO; dlerror: /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cudnnCreate

我有一种感觉,笔记本无法找到cuda库。笔记本电脑没有获得一些路径变量吗?我试图设置一些使用os库(例如LD_LIBRARY_PATH =/usr/local/cuda/lib64),所以无济于事。

+0

安装是几个月大。我会看看升级tensorflow –

回答

2

正如我怀疑的那样,正如Jonathan Hseu在评论中所建议的,我的Jupyter笔记本使用了不同于我从命令行使用的环境变量。也就是说,我的.bashrc文件有以下行,它指向正确cuDNN库:

export LD_LIBRARY_PATH=/usr/local/cuda/lib64

我(misguidedly)正在运行Jupyter笔记本作为一种不同的用户,所以这个环境变量从未得到设定。像我一样运行它,使用我的.bashrc解决了我的问题。

0

我的猜测是你没有正确安装cuDNN。请注意,这是从CUDA单独的安装步骤: https://developer.nvidia.com/cudnn

你的命令行作业可能不依赖于cuDNN(也许它不使用卷积),所以你没有得到这样的失败。

+0

命令行工作是在jupyter笔记本,这绝对是一个CNN失败的确切代码。 –

+1

是的,另一种可能性是笔记本获得的环境变量不同于在Python中运行它。 –

+0

这是我的怀疑。我会在这个方向尝试一些事情。 –