wake-up-neo.com

Probleme mit TensorFlow in Jupyter Notebook

Ich habe Jupyter-Notebooks in Ubuntu 14.04 über Anaconda installiert, und vor kurzem habe ich TensorFlow installiert. Ich möchte, dass TensorFlow funktioniert, unabhängig davon, ob ich in einem Notizbuch arbeite oder einfach Scripting. Um dies zu erreichen, installierte ich TensorFlow zweimal, einmal mit Anaconda und einmal mit pip. Die Anaconda-Installation funktioniert, aber ich muss jeden Aufruf von Python mit "source enable tensorflow" voranstellen. Und die Pip-Installation funktioniert gut, wenn Python wie üblich (im Terminal) gestartet wird, wird der Tensorflow gut belastet. 

Meine Frage ist: Wie kann ich es auch in den Jupyter-Notebooks funktionieren lassen? 

Dies führt mich zu einer allgemeineren Frage: Es scheint, dass mein Python-Kernel in Jupyter/Anaconda vom systemabhängigen Python-Kernel (oder der Umgebung - nicht sicher über die Terminologie) getrennt ist. Es wäre schön, wenn diese übereinstimmen würden. Wenn ich also eine neue Python-Bibliothek installiere, wird sie für all die verschiedenen Möglichkeiten des Python-Laufens zugänglich.

29

Update

TensorFlow-Website unterstützt fünf Installationen. 

Nach meinem Verständnis wäre die direkte Verwendung von Pip-Installation in Ordnung, TensorFlow in Jupyter Notebook zu importieren (sofern Jupyter Notebook installiert wurde und keine anderen Probleme auftraten). B/z erstellte keine virtuellen Umgebungen. 

Mit virtualenv install und conda install müsste jupyter in der neu erstellten TensorFlow-Umgebung installiert werden, damit TensorFlow in Jupyter Notebook funktionieren kann (siehe den folgenden Abschnitt zum ursprünglichen Beitrag) Einzelheiten). 

Ich glaube, Docker-Installation erfordert möglicherweise einige Port-Einstellungen in der VirtualBox, damit TensorFlow in Jupyter Notebook funktioniert ( siehe diesen Beitrag ). 

Bei Installation von Quellen hängt es auch davon ab, in welcher Umgebung der Quellcode erstellt und installiert wird. Wenn es in einer frisch erstellten virtuellen Umgebung oder einer virtuellen Umgebung installiert wird, in der Jupyter Notebook nicht installiert ist, muss Jupyter Notebook auch in der virtuellen Umgebung installiert werden, um Tensorflow in Jupyter Notebook verwenden zu können.

Ursprünglicher Beitrag

Um Tensorflow in Ipython und/oder Jupyter (Ipython) Notebook zu verwenden, müssen Sie Ipython und Jupyter (nach der Installation von Tensorflow) in der aktivierten Tensorflow-Umgebung installieren.

Bevor Sie Ipython und Jupyter in der Tensorflow-Umgebung installieren, müssen Sie die folgenden Befehle in terminal ausführen:

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

Dies sagt Ihnen, dass wenn Sie Python vom Terminal aus öffnen, es das verwendet, das in den "Umgebungen" installiert ist, in denen der Tensorflow installiert ist. Daher können Sie den Tensorflow tatsächlich erfolgreich importieren. Wenn Sie jedoch versuchen, ein ipython- und/oder ein jupyter-Notebook auszuführen, werden diese nicht in den mit tensorflow ausgestatteten "Umgebungen" installiert. Daher muss die normale Umgebung ohne Tensorflow-Modul verwendet werden. Daher wird ein Import angezeigt Error.

Sie können dies überprüfen, indem Sie die Elemente im Verzeichnis envs/tensorflow/bin auflisten:

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

Sie werden sehen, dass es keine "ipython" - und/oder "jupyer" -Auflistung gibt.

Um Tensorflow mit Ipython und/oder Jupyter Notebook zu verwenden, installieren Sie sie einfach in der Tensorflow-Umgebung:

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

Nach der Installation sollte im Verzeichnis envs/tensorflow/bin/ein "jupyer" und ein "ipython" angezeigt werden.

Hinweise: Bevor Sie versuchen, das Tensorflow-Modul in ein Jupyter-Notebook zu importieren, schließen Sie das Notebook. Und "Quelle deaktivieren Tensorflow" zuerst und reaktivieren Sie ihn anschließend ("Quelle aktivieren Tensorflow"), um sicherzustellen, dass sich die Dinge auf derselben Seite befinden. Dann öffnen Sie das Notebook erneut und versuchen Sie, den Tensorflow zu importieren. Es sollte erfolgreich importiert werden (zumindest an meinem gearbeitet).

56
Zhongyu Kuang

diese habe ich in virtualenv verwendet. 

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

Dadurch werden sowohl das ipython- als auch das jupyter-Notebook in meiner virtuellen Tensorflow-Umgebung neu installiert. Sie können es nach der Installation durch which ipython und which jupyter überprüfen. Die bin befindet sich unter der virtuellen Env.

NOTEIch benutze Python 3. *

5
as - if

Ich habe eine andere Lösung, die Sie nicht jedes Mal source activate tensorflow verwenden müssen, bevor Sie jupyter notebook verwenden.

Teil 1

Zunächst sollten Sie sicherstellen, dass Sie jupyter in Ihrer virtualenv installiert haben. Wenn Sie installiert haben, können Sie diesen Abschnitt überspringen (verwenden Sie which jupyter zum Überprüfen). Wenn Sie dies nicht tun, können Sie source activate tensorflow ausführen und dann jupyter mithilfe von conda install jupyter in Ihrer virtuellen Umgebung installieren. (Sie können auch pip verwenden.)

Teil 2 

1.Von deiner Virtualenv aus ausführen

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

Dadurch wird eine Kernelspec für Ihre Virtualenv erstellt und Ihnen mitgeteilt, wo sich diese befindet:

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

Wo pythonX der Version von Python in Ihrer virtualenv entsprechen wird.

2.Kopieren Sie die neue Kernelspec an einem geeigneten Ort. Wählen Sie einen kernel_name für Ihren neuen Kernel, der nicht python2 oder python3 ist oder den Sie zuvor verwendet haben, und dann:

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

3.Wenn Sie den Namen des von IPython angezeigten Kernels ändern möchten, müssen Sie ~/.ipython/kernels/<kernel_name>/kernel.json bearbeiten und den JSON-Schlüssel mit dem Namen display_name in einen gewünschten Namen ändern.

4.Sie sollten nun Ihren Kernel im IPython-Notizbuchmenü sehen können: Kernel -> Change kernel und so umschalten können (möglicherweise müssen Sie die Seite aktualisieren, bevor sie in der Liste angezeigt wird). IPython merkt sich dann, welcher Kernel für dieses Notebook verwendet wird.

Referenz .

4
user5746429

Folgendes habe ich getan, um Tensorflow in Anaconda -> Jupyter zu ermöglichen. 

  1. Installieren Sie Tensorflow gemäß den Anweisungen unter 
  2. Gehen Sie zu/Users/Benutzername/Anaconda/Env und stellen Sie sicher, dass Tensorflow installiert ist
  3. Öffnen Sie den Anaconda Navigator und gehen Sie zu "Umgebungen" (in der linken Navigation).
  4. Wählen Sie im Dropdown-Menü "Alle" und suchen Sie nach Tensorflow
  5. Ist sie nicht aktiviert, aktivieren Sie sie im Kontrollkästchen und bestätigen Sie den folgenden Vorgang. 
  6. Öffnen Sie jetzt ein neues Jupyter-Notebook und der Tensorflow sollte funktionieren 
2

Ihre Anaconda-Installation wurde wahrscheinlich in ein anderes Verzeichnis verschoben als Ihre Python-Installation

Zum Beispiel auf meiner Maschine finde ich hier den Ort

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

Wenn Sie python eingeben, versucht es, es in PATH zu finden, das von links nach rechts geht. Möglicherweise haben Sie eine andere Version von python in einem Ordner vor dem Anaconda-Ordner, und diese wird verwendet. Um dies zu beheben, können Sie export PATH=.... verwenden, um den Pfad zu ändern, und das Anaconda-Verzeichnis in den Vordergrund stellen, so dass python anstelle des Standardwerts von dort verwendet wird

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

Ich habe PIP mit Conda conda install pip anstelle von apt-get install python-pip python-dev installiert.

Dann installierte tensorflow Use 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

Dann wird es in Jupyter Notebook funktionieren. 

1
Q.Liu

Ich habe die Lösung in einem anderen Post gefunden. Es ist einfach und funktioniert gut! 

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

Installieren Sie einfach Folgendes in der Eingabeaufforderung und ändern Sie den Kernel in Python 3 in Jupyter Notebook. Der Tensorflow wird erfolgreich importiert.

pip install tornado == 4.5.3

pip install ipykernel == 4.8.2

(Ursprünglicher Beitrag: https://github.com/tensorflow/tensorflow/issues/11851

0
LovelyVV

Ich hatte ein ähnliches Problem bei der Verwendung eines benutzerdefinierten Ubuntu 16-Bildes. Das Problem war auf eine vorhandene Version von numpy zurückzuführen, die bereits auf meinem System installiert war.

Ich habe es anfangs versucht

Sudo pip3 install tensorflow

Dies führte zu der folgenden Ausnahme:

Ausnahme: Traceback (letzter Anruf zuletzt): Datei "/anaconda/envs/py35/lib/python3.5/shutil.py", Zeile 538, in Bewegung os.rename (src, real_dst) PermissionError: [Errno 13] Berechtigung abgelehnt: '/anaconda/envs/py35/lib/python3.5/site-packages/numpy' -> '/ tmp/pip-co73r3hm-uninstall/anaconda/envs/py35/lib/python3 .5/site-packages/numpy '

Die Dokumente weisen Sie darauf hin, dass Sie bei Problemen mit diesem Befehl Folgendes versuchen sollten:

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

Mein System konnte pip3 jedoch nicht finden.

Sudo: Befehl pip3 nicht gefunden

Die ulitmate-Lösung bestand darin, eine symlink für pip3 zu erstellen

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

Schließlich funktionierte der folgende Befehl problemlos

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

Ich habe die Installation in der terminal und auch einen erfolgreichen Import in meinem Jupyter Notebook überprüft.

import tensorflow as tf
0
Brian Vanover

Ich frage mich, ob es nicht ausreicht, ipython einfach aus der tensorflow-Umgebung zu starten. Das ist 1) Aktivieren Sie zuerst tensorflow virtualenv mit:

source ~/tensorflow/bin/activate

2) Starten Sie ipython in einer Tensorflow-Umgebung

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

Jupyter Lab: ModuleNotFound Tensorflow

Für eine zukünftige Version von mir oder einem Kollegen, der auf dieses Problem stößt:

conda install -c conda-forge jupyter jupyterlab keras tensorflow

Es stellte sich heraus, dass jupyterlab ein Plugin für jupyter ist.

Selbst wenn Sie sich in einer Umgebung mit jupyter befinden, aber nichtjupyterlab, versuchen Sie Folgendes auszuführen:

jupyter lab

dann wird jupyter im (base) Umgebung für das jupyterlab Plugin.

Dann importieren Sie in jupyter lab ist relativ zu diesem Plugin und nicht Ihrer Conda-Umgebung.

0
Josh Peak

Die akzeptierte Antwort (von Zhongyu Kuang) hat mir gerade geholfen. Hier habe ich eine environment.yml-Datei erstellt, die es mir ermöglicht, diesen Conda/Tensorflow-Installationsprozess wiederholbar zu machen.

Schritt 1 - Erstellen Sie eine Conda environment.yml-Datei

environment.yml sieht so aus:

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

Hinweis:

  • Ersetzen Sie einfach den Namen in das, was Sie möchten. (meins ist hello-tensorflow)
  • Ersetzen Sie einfach die Python-Version nach Ihren Wünschen. (meins ist 3.6)
  • Ersetzen Sie einfach die Tensorflow-Pip-Installations-URL in das, was Sie möchten (meine ist die Tensorflow-URL, bei der Python 3.6 mit GPU unterstützt)

Schritt 2 - Erstellen Sie die Conda-Umgebung

Wenn sich environment.yml in dem aktuellen Pfad befindet, in dem Sie sich befinden, erstellt dieser Befehl die Umgebung hello-tensorflow (oder was auch immer Sie umbenannt haben):

conda env create -f environment.yml

Schritt 3: Quelle aktivieren

Aktivieren Sie die neu erstellte Umgebung:

source activate hello-tensorflow

Schritt 4 - welcher Python/Jupyter/IPython

welcher Python ...

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

was jupyter ...

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

welche ipython ...

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

Schritt 5

Sie sollten nun Tensorflow von Python, Jupyter (Console/qtconsole/notebook usw.) und ipython importieren können.

0
Atlas7

Ich denke, deine Frage ist sehr ähnlich mit der Frage hier. Windows 7 Jupyter Notebook ausgeführt Tensorflow . Wie Jaroslaw erwähnt hat, kannst du es versuchen 

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

0
Yan Zhao