![](/img/trans.png)
[英]Jupyter kernel dies when importing Tensorflow, trouble with jupyter notebook
[英]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 install和conda 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 ipython
和which 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
,它不是python2
或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 將記住該筆記本使用哪個內核。
參考。
這是我在 Anaconda -> Jupyter 中啟用 tensorflow 所做的。
您的 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 安裝過程可重復。
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
)3.6
)隨着environment.yml
位於您所在的當前路徑中,此命令將創建環境hello-tensorflow
(或您將其重命名為的任何內容):
conda env create -f environment.yml
激活新創建的環境:
source activate hello-tensorflow
哪個蟒蛇...
(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
您現在應該可以從 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)
對於遇到此問題的我或同事的未來版本:
conda install -c conda-forge jupyter jupyterlab keras tensorflow
原來jupyterlab
是jupyter
的插件。
因此,即使您處於具有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.