【问题标题】:tensorflow gpu can not be called from jupyterhub/jupyter notebook, why?无法从 jupyterhub/jupyter notebook 调用 tensorflow gpu,为什么?
【发布时间】:2017-10-14 12:18:16
【问题描述】:

好吧,我认为 8 小时的时间足够我自己解决这个问题了,所以我就问问大家:

我在 jupyterhub 和 Jupyter notebook 之外的名为“tensorflow”的虚拟环境中运行 tensorflow-gpu 1.1.0 就好了。也就是说,我可以使用 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) 键入“which jupyter”显示~/anaconda3/envs/hub/bin/jupyter,所以我相信我在我的 virtualenv 中引用了 jupyter。 3)Pip freeze 表明我有 jupyterhub 和 tensorflow-gpu。我什至做了一个pip3 freeze,它也显示了这两个包。

有什么想法吗? tensorflow-gpu 可以在 Jupyter 笔记本上运行吗?

【问题讨论】:

  • 是的,您可以从 Jupyter 运行 tensorflow(CPU 和 GPU 版本)。该错误似乎表明您的 CUDA 未安装或配置不正确。您可能需要检查是否设置了 CUDA_HOME 环境变量以及您的 LD_LIBRARY_PATH 是否包含您的 CUDA 安装位置。
  • Mad Wombat,你在虚拟环境中使用过 tensorflow gpu 和 Jupyter 吗?问题不是 jupyter,因为我可能已经正确设置了 tensorflow gpu,因为它在 jupyter 之外工作
  • 我经常在虚拟环境中在 Jupyter 中使用 TensorFlow for GPU。我不需要设置LD_LIBRARY_PATH,但必须正确配置CUDA_HOME。您可以使用import os; os.environ.get('CUDA_HOME') 检查该变量是否具有笔记本中的预期值。
  • 我在 Windows 10 笔记本电脑上使用了 Jupyter notebook 中的 TensorFlow。我没有使用 virtualenv,我使用了 conda 环境,但这些在功能上应该是相同的。当然,你必须在同一个虚拟环境中安装 jupyter 和 tensorflow。

标签: tensorflow jupyter-notebook jupyterhub


【解决方案1】:

我从这里得到了解决方案:

[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 notebook 级别进行更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2018-07-28
    • 2021-04-23
    相关资源
    最近更新 更多