繁体   English   中英

Jupyter 笔记本中的 TensorFlow 出现问题

[英]Trouble with TensorFlow in Jupyter Notebook

我之前通过 Anaconda 在 Ubuntu 14.04 安装了 Jupyter notebooks,刚才我安装了 TensorFlow。我希望 TensorFlow 可以工作,无论我是在笔记本上工作还是简单地编写脚本。 为了实现这一目标,我最终安装了 TensorFlow 两次,一次使用 Anaconda,一次使用 pip。Anaconda 安装有效,但我需要在对 python 的任何调用前加上“source activate tensorflow”。 pip 安装效果很好,如果以标准方式(在终端中)启动 python,则 tensorflow 加载就好了。

我的问题是:我怎样才能让它在 Jupyter notebooks 中工作?

这让我想到了一个更普遍的问题:似乎我在 Jupyter/Anaconda 中的 python kernel 与系统范围内使用的 python kernel(或环境?不确定这里的术语)是分开的。 如果这些一致就好了,这样如果我安装一个新的 python 库,我运行 python 的所有不同方式都可以访问它。

更新

TensorFlow 网站支持五种安装。

据我了解,直接使用Pip 安装可以在 Jupyter Notebook 中导入 TensorFlow(只要安装了 Jupyter Notebook 并且没有其他问题)b/z 它没有创建任何虚拟环境。

使用virtualenv installconda install需要将 jupyter 安装到新创建的 TensorFlow 环境中,以允许 TensorFlow 在 Jupyter Notebook 中工作(有关更多详细信息,请参阅以下原始帖子部分)。

我相信docker install可能需要在 VirtualBox 中设置一些端口才能使 TensorFlow 在 Jupyter Notebook 中工作( 参见这篇文章)。

对于从源安装,它还取决于构建和安装源代码的环境。 如果它安装到一个新创建的虚拟环境或没有安装 Jupyter Notebook 的虚拟环境中,它还需要将 Jupyter Notebook 安装到虚拟环境中才能在 Jupyter Notebook 中使用 Tensorflow。

原帖

要在 Ipython 和/或 Jupyter(Ipython) Notebook 中使用 tensorflow,您需要在 tensorflow 激活环境下安装 Ipython 和 Jupyter(安装 tensorflow 后)。

在 tensorflow 环境下安装 Ipython 和 Jupyter 之前,如果你在终端中执行以下命令:

username$ source activate tensorflow

(tensorflow)username$ which ipython
(tensorflow)username$ /Users/username/anaconda/bin/ipython

(tensorflow)username$ which jupyter
(tensorflow)username$ /Users/username/anaconda/bin/jupyter

(tensorflow)username$ which python
(tensorflow)username$ /User/username//anaconda/envs/tensorflow/bin/python

这告诉您,当您从终端打开 python 时,它使用的是安装在安装 tensorflow 的“环境”中的那个。 因此,您实际上可以成功导入 tensorflow。 但是,如果您尝试运行 ipython 和/或 jupyter 笔记本,它们不会安装在配备 tensorflow 的“环境”下,因此它必须返回使用没有 tensorflow 模块的常规环境,因此您会得到一个导入错误。

您可以通过列出 envs/tensorflow/bin 目录下的项目来验证这一点:

(tensorflow) username$ ls /User/username/anaconda/envs/tensorflow/bin/

您会看到没有列出“ipython”和/或“jupyer”。

要将 tensorflow 与 Ipython 和/或 Jupyter notebook 一起使用,只需将它们安装到 tensorflow 环境中:

(tensorflow) username$ conda install ipython
(tensorflow) username$ pip install jupyter #(use pip3 for python3)

安装它们后,在 envs/tensorflow/bin/ 目录中应该会出现一个“jupyer”和一个“ipython”。

注意:在尝试在 jupyter notebook 中导入 tensorflow 模块之前,请尝试关闭 notebook。 并且首先“source deactivate tensorflow”,然后重新激活它(“source activate tensorflow”)以确保事情“在同一页面上”。 然后重新打开笔记本并尝试导入 tensorflow。 它应该成功导入(至少在我的工作)。

我在 virtualenv 中使用了以下这些。

pip3 install --ignore-installed ipython
pip3 install --ignore-installed jupyter

这会在我的 tensorflow 虚拟环境中重新安装 ipython 和 jupyter notebook。 您可以在安装后通过which ipythonwhich jupyter bin将位于虚拟环境下。

注意我使用的是 python 3.*

我有另一个解决方案,您不需要在每次使用jupyter notebook之前source activate tensorflow

第 1 部分

首先,你应该确保你已经在你的 virtualenv 中安装了 jupyter。 如果您已经安装,您可以跳过这一部分(使用which jupyter来检查)。 如果没有,您可以运行source activate tensorflow ,然后通过 conda install jupyter 在您的 virtualenv 中conda install jupyter (你也可以使用pip 。)

第 2 部分

1.从你的virtualenv中,运行

username$ source activate tensorflow
(tensorflow)username$ ipython kernelspec install-self --user

这将为您的 virtualenv 创建一个内核规范并告诉您它在哪里:

(tensorflow)username$ [InstallNativeKernelSpec] Installed kernelspec pythonX in /home/username/.local/share/jupyter/kernels/pythonX

pythonX 将与您的 virtualenv 中的 Python 版本匹配。

2.将新的内核规范复制到有用的地方。 为您的新内核选择一个kernel_name ,它不是python2python3或您之前使用过的内核:

(tensorflow)username$ mkdir -p ~/.ipython/kernels
(tensorflow)username$ mv ~/.local/share/jupyter/kernels/pythonX ~/.ipython/kernels/<kernel_name>

3.如果要更改 IPython 显示的内核名称,您需要编辑~/.ipython/kernels/<kernel_name>/kernel.json并将名为display_name的 JSON 键更改为您喜欢的名称。

4.您现在应该能够在 IPython 笔记本菜单中看到您的内核: Kernel -> Change kernel并能够切换到它(您可能需要刷新页面才能出现在列表中)。 从那时起,IPython 将记住该笔记本使用哪个内核。

参考

这是我在 Anaconda -> Jupyter 中启用 tensorflow 所做的。

  1. 使用提供的说明安装 Tensorflow
  2. 转到 /Users/username/anaconda/env 并确保安装了 Tensorflow
  3. 打开 Anaconda 导航器并转到“环境”(位于左侧导航中)
  4. 在第一个下拉菜单中选择“全部”并搜索 Tensorflow
  5. 如果未启用,请在复选框中启用它并确认接下来的过程。
  6. 现在打开一个新的 Jupyter 笔记本,张量流应该可以工作了

您的 Anaconda 安装可能与您的 Python 安装进入了不同的目录

例如在我的机器上,我可以在这里找到位置

yaroslavvb-macbookpro:~ yaroslavvb$ which ipython
/Users/yaroslavvb/anaconda/bin/ipython

当您键入python时,它会尝试在PATH中以从左到右的顺序找到它。 所以你可能在 Anaconda 文件夹之前的文件夹中有另一个版本的python ,它会使用它。 要修复,您可以执行export PATH=....更改路径,并将 Anaconda 目录放在前面,以便从那里获取python而不是默认值,即

export PATH=/Users/yaroslavvb/anaconda/bin:$PATH

我使用 Conda conda install pip而不是apt-get install python-pip python-dev安装了 PIP。

然后安装 tensorflow 使用Pip 安装

# Ubuntu/Linux 64-bit, CPU only, Python 2.7 
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7 
# Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below. 
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl

...

pip install --upgrade $TF_BINARY_URL

然后它将在 jupyter notebook 中工作。

接受的答案(由钟宇匡)刚刚帮助了我。 在这里,我创建了一个environment.yml文件,使我能够使这个 conda / tensorflow 安装过程可重复。

第 1 步 - 创建一个 Conda environment.yml 文件

environment.yml看起来像这样:

name: hello-tensorflow
dependencies:
  - python=3.6
  - jupyter
  - ipython
  - pip:
    - https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.1.0-cp36-cp36m-linux_x86_64.whl

笔记:

  • 只需将名称替换为您想要的任何名称。 (我的是hello-tensorflow
  • 只需将 python 版本替换为您想要的任何版本。 (我的是3.6
  • 只需将 tensorflow pip install URL 替换为您想要的任何内容(我的是 Tensorflow URL,其中 Python 3.6 支持 GPU)

第 2 步 - 创建 Conda 环境

随着environment.yml位于您所在的当前路径中,此命令将创建环境hello-tensorflow (或您将其重命名为的任何内容):

conda env create -f environment.yml

第三步:源激活

激活新创建的环境:

source activate hello-tensorflow

第 4 步 - 哪个 python / jupyter / ipython

哪个蟒蛇...

(hello-tensorflow) $ which python
/home/johnny/anaconda3/envs/hello-tensorflow/bin/python

哪个jupyter...

(hello-tensorflow) $ which jupyter
/home/johnny/anaconda3/envs/hello-tensorflow/bin/jupyter

哪个ipython...

(hello-tensorflow) $ which ipython
/home/johnny/anaconda3/envs/hello-tensorflow/bin/ipython

第 5 步

您现在应该可以从 python、jupyter(console/qtconsole/notebook 等)和 ipython 导入 tensorflow。

我认为您的问题与此处的问题帖子非常相似。 Windows 7 jupyter notebook 执行 tensorflow 正如雅罗斯拉夫所说,您可以尝试

conda install -c http://conda.anaconda.org/jjhelmus tensorflow

使用自定义Ubuntu 16映像时,我遇到了类似的问题。 该问题与我的系统上已安装的现有numpy版本有关。

我最初尝试过

sudo pip3 install tensorflow

这导致了以下异常:

例外:回溯(最近一次调用最后一次):文件“/anaconda/envs/py35/lib/python3.5/shutil.py”,第 538 行,在 move os.rename(src, real_dst) PermissionError: [Errno 13] Permission拒绝:'/anaconda/envs/py35/lib/python3.5/site-packages/numpy'->'/tmp/pip-co73r3hm-uninstall/anaconda/envs/py35/lib/python3.5/site-packages/麻木的'

文档建议,如果您遇到此命令的任何问题,请尝试以下操作:

sudo pip3 install --upgrade \ 
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl

但是,我的系统无法找到pip3

sudo:找不到 pip3 命令

ulitmate 解决方案是为 pip3 创建一个symlink

sudo ln -s /anaconda/envs/py35/bin/pip3.5 /usr/local/bin/pip3

最后,以下命令正常工作

sudo /usr/local/bin/pip3 install --upgrade \ 
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl

我在terminal中验证了安装,并在我的Jupyter Notebook中验证了成功导入

import tensorflow as tf

我想知道从 tensorflow 环境中简单地启动 ipython 是否还不够。 那就是1)首先激活tensorflow virtualenv:

source ~/tensorflow/bin/activate

2)在tensorflow环境下启动ipython

(tensorflow)$ ipython notebook --ip=xxx.xxx.xxx.xxx

我从别人的帖子中找到了解决方案。 它很简单,效果很好!

http://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs

只需在命令提示符中安装以下内容,然后在 Jupyter Notebook 中将内核更改为 Python 3。 它将成功导入 tensorflow。

点安装龙卷风==4.5.3

pip install ipykernel==4.8.2

(原帖: https ://github.com/tensorflow/tensorflow/issues/11851)

Jupyter 实验室:ModuleNotFound tensorflow

对于遇到此问题的我或同事的未来版本:

conda install -c conda-forge jupyter jupyterlab keras tensorflow

原来jupyterlabjupyter的插件。

因此,即使您处于具有jupyter也没有jupyterlab的环境中,如果您尝试运行:

jupyter lab

然后jupyter将在jupyterlab插件的(base)环境中查找。

然后,您在jupyter lab中的导入将与该插件相关,而不是您的 conda 环境。

pip install tensorflow

这在我的 conda 虚拟环境中对我有用。

我试图在已经安装了 jupyter notebooks 的 conda 虚拟环境中使用conda install tensorflow ,导致许多冲突和失败。 但是 pip install 工作正常。

康达信息--envs

conda create --name py3-TF2.0 python=3

继续([y]/n)? 是的

conda 激活 py3-TF2.0

康达安装张量流

pip install --upgrade tensorflow

conda install -c anaconda ipykernel

python -m ipykernel install --user --name=py3-TF2.0

这是最好的方法,但如果需要,您也应该使用 scipy 升级 numpy

您可以尝试“conda install tensorflow”。 这将在您的 Anaconda 目录中安装 TensorFlow。 您的本地 pip 目录可能不会与 Anaconda 目录共享。

如果您觉得回复相关,请给它一个upvote! 谢谢!

打开 Anaconda 提示屏幕:( (base) C:\Users\YOU>conda create -n tf tensorflow

创建环境后输入: conda activate tf

提示移动到(tf)环境,即: (tf) C:\Users\YOU>

然后在此(tf)环境中安装 Jupyter Notebook: conda install -c conda-forge jupyterlab - jupyter notebook

仍然在 (tf) 环境中,即类型(tf) C:\Users\YOU>jupyter notebook

笔记本屏幕启动!!

一个新的笔记本然后可以import tensorflow

从那时起 要打开会话,请单击 Anaconda 提示符,键入conda activate tf

提示移动到 tf 环境(tf) C:\Users\YOU>

然后输入(tf) C:\Users\YOU>jupyter notebook

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM