Jupyter Notebook中的TensorFlow问题

时间:2016-05-05 22:08:09

标签: python tensorflow jupyter

我之前通过Anaconda在Ubuntu 14.04中安装了Jupyter笔记本,刚才我安装了TensorFlow。无论我是在笔记本电脑上工作还是只是编写脚本,我都希望TensorFlow能够正常工作。在我尝试实现这一目标时,我最终安装了TensorFlow两次,一次使用Anaconda,一次使用pip。 Anaconda安装工作,但我需要使用“source activate tensorflow”来预先调用python。并且pip安装工作得很好,如果以标准方式启动python(在终端中),那么tensorflow加载就好了。

我的问题是:我怎样才能在Jupyter笔记本中使用它?

这引出了一个更普遍的问题:似乎我的Jupyter / Anaconda中的python内核与系统范围内使用的python内核(或环境?不确定这里的术语)是分开的。如果这些重合,那将是很好的,所以如果我安装一个新的python库,它可以通过我运行python的各种方式访问​​。

13 个答案:

答案 0 :(得分:58)

<强>更新

TensorFlow website支持五种安装。

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

使用virtualenv installconda install需要在新创建的TensorFlow环境中安装jupyter,以允许TensorFlow在Jupyter Notebook中工作(有关详情,请参阅以下原始文章部分)细节)。

我相信docker install可能需要在VirtualBox中设置一些端口才能使TensorFlow在Jupyter Notebook(see this post)中工作。

对于installing from sources,它还取决于构建和安装源代码的环境。如果将其安装到新创建的虚拟环境或未安装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时,它正在使用安装在&#34;环境中的那个&#34;其中安装了tensorflow。因此,您实际上可以成功导入tensorflow。但是,如果您尝试运行ipython和/或jupyter笔记本,则这些不会安装在&#34;环境下#34;配备tensorflow,因此必须返回使用没有tensorflow模块的常规环境,因此会出现导入错误。

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

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

你会发现没有&#34; ipython&#34;和/或&#34; jupyer&#34;列出来。

要在Ipython和/或Jupyter笔记本中使用tensorflow,只需将它们安装到张量流环境中即可:

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

安装完毕后,应该有一个&#34; jupyer&#34;和&#34; ipython&#34;显示在envs / tensorflow / bin /目录中。

注意: 在尝试在jupyter笔记本中导入tensorflow模块之前,请尝试关闭笔记本。并且&#34;来源停用张量流&#34;首先,然后重新激活它(&#34; source activate tensorflow&#34;)以确保在同一页面上#34;&#34;。然后重新打开笔记本并尝试导入tensorflow。它应该成功导入(至少在我的工作)。

答案 1 :(得分:5)

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

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

这会在我的tensorflow虚拟环境中重新安装ipython和jupyter笔记本。您可以在which ipythonwhich jupyter安装后对其进行验证。 bin将位于虚拟环境下。

  

注意我使用的是python 3。*

答案 2 :(得分:4)

我每次使用source activate tensorflow之前都有另一个不需要jupyter notebook的解决方案。

第1部分

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

第2部分

1.从您的virtualenv中,运行

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

这将为你的virtualenv创建一个kernelspec并告诉你它在哪里:

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

其中pythonX将匹配virtualenv中的Python版本。

2.将新的kernelspec复制到有用的地方。为新内核kernel_namepython2或之前使用的内核选择python3,然后:

(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将记住从那时起用于该笔记本的内核。

Reference

答案 3 :(得分:3)

以下是我在Anaconda中启用张量流的方法 - &gt; Jupyter。

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

答案 4 :(得分:2)

您的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

答案 5 :(得分:1)

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

然后安装了tensorflow 使用Pip Installation

# 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笔记本中工作。

答案 6 :(得分:1)

接受的答案(由钟宇光提供)刚刚帮助了我。在这里,我创建了一个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安装URL替换为您想要的任何内容(我的是支持GPU的Python 3.6的Tensorflow URL)

第2步 - 创建Conda环境

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

conda env create -f environment.yml

第3步:源激活

激活新创建的环境:

source activate hello-tensorflow

第4步 - 哪个是python / jupyter / ipython

哪个python ...

(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。

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

使用自定义Ubuntu 16图片时出现类似问题。该问题与我系统上已安装的numpy的现有版本有关。

我最初尝试过

sudo pip3 install tensorflow

这导致以下异常:

  

例外:   Traceback(最近一次调用最后一次):     文件“/anaconda/envs/py35/lib/python3.5/shutil.py”,第538行,移动       os.rename(src,real_dst)   PermissionError:[Errno 13]权限被拒绝:'/ anaconda/envs/py35/lib/python3.5/site-packages/numpy' - &gt; '/tmp/pip-co73r3hm-uninstall/anaconda/envs/py35/lib/python3.5/site-packages/numpy'

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

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

答案 9 :(得分:0)

我想知道仅仅从tensorflow环境启动ipython还不够。那是 1)首先激活tensorflow virtualenv:

source ~/tensorflow/bin/activate

2)在tensorflow environnement下启动ipython

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

答案 10 :(得分:0)

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

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

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

  

pip install tornado == 4.5.3

     

pip install ipykernel == 4.8.2

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

答案 11 :(得分:0)

Jupyter实验室:ModuleNotFound张量流

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

conda install -c conda-forge jupyter jupyterlab keras tensorflow

结果证明jupyterlabjupyter的插件。

因此,即使您在具有jupyter但又没有 jupyterlab的环境中,如果您尝试运行:

jupyter lab

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

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

答案 12 :(得分:-1)

打开 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