簡體   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