嗯,我觉得8个小时足以让我自己解决这个问题,所以我只会问问大家:
我在名为' tensorflow'的虚拟环境中运行tensorflow-gpu 1.1.0就好了。在jupyterhub和Jupyter笔记本之外。也就是说,我可以使用gpu导入tensorflow并运行脚本。
当我在我的tensorflow virtualenv中并使用jupyterhub时,Jupyter似乎无法看到' tensorflow。我收到以下错误:
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory
1)这是一个常见的错误消息,指示tensorflow安装问题,但我的路径和环境变量似乎很好。毕竟,我可以在Jupyter之外使用tensorflow-gpu。
2)打字' jupyter'显示~/anaconda3/envs/hub/bin/jupyter
,所以我相信我在我的virtualenv中引用了jupyter。
3)Pip freeze
表明我有jupyterhub和tensorflow-gpu。我甚至做了一个pip3 freeze
,它也显示了两个包。
有什么想法吗?可以从Jupyter笔记本运行tensorflow-gpu吗?
答案 0 :(得分:4)
我从这里得到了解决方案:
[https://github.com/jupyter/notebook/issues/1290][1]
基本上,jupyter的某些内容是“错误的”,因为它无法读取我的LD_LIBRARY_PATH
变量。我确实把所有内容都放在.bashrc中,所以我不知道为什么。
切换到命令行(终端)。如果您有虚拟环境,请切换到您的虚拟环境。
输入:jupyter notebook --generate-config
它将告诉您存储jupyter配置文件的目录。如果要再次列出,请输入:jupyter --config-dir
我的jupyter_notebook_config.py文件位于:/home/me/.jupyter/jupyter_notebook_config.py
在此文件的最顶部jupyter_notebook_config.py
,添加以下代码:
import os
c = get_config()
os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda-8.0/lib64:usr/local/cuda-8.0/lib64/libcudart.so.8.0'
c.Spawner.env.update('LD_LIBRARY_PATH')
然后重启jupyterhub或jupyter notebook(在命令行输入:jupyter notebook
Tensorflow gpu应该可以工作。
即使您正在运行jupyterhub,同样适用。在jupyter中进行更改,而不是jupyterhub。 (jupyterhub的每个用户都有自己的jupyter进程,因此不要在'hub'级别进行更改,而是更换jupyter笔记本级别。