我正在使用带有tensorflow和GPU的keras运行示例深度网络脚本。它在ubuntu上。从命令行开始,一切运行良好;例如,我可以将任何示例网络复制到python文件中并运行它并验证GPU正在使用。
问题:我已经启动了一个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 libs。笔记本没有得到一些路径变量吗?我试图使用os库设置一些(例如LD_LIBRARY_PATH = / usr / local / cuda / lib64),所以无济于事。
答案 0 :(得分:2)
正如我所怀疑的,正如Jonathan Hseu在评论中所建议的,我的Jupyter笔记本使用的不同环境变量比我在命令行中使用的不同。也就是说,我的.bashrc文件有以下行,它指向正确的cuDNN库:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
我(误导)将Jupyter笔记本作为不同的用户运行,因此这个环境变量从未被设置过。使用我的.bashrc以自己的身份运行它解决了我的问题。
答案 1 :(得分:0)
我的猜测是你没有正确安装cuDNN。请注意,它是CUDA的单独安装步骤: https://developer.nvidia.com/cudnn
你的命令行工作可能不依赖于cuDNN(也许它不使用卷积),所以你不会失败。