web-dev-qa-db-fra.com

Problème avec TensorFlow dans le cahier Jupyter

J'ai déjà installé des ordinateurs portables Jupyter dans Ubuntu 14.04 via Anaconda, et tout à l'heure, j'ai installé TensorFlow. J'aimerais que TensorFlow fonctionne, que je travaille dans un cahier ou tout simplement en scriptant. Dans ma tentative, j’ai fini par installer TensorFlow deux fois, une fois avec Anaconda et une fois avec pip. L’installation d’Anaconda fonctionne, mais j’ai besoin de faire précéder tout appel à python par «source activer tensorflow». Et le programme d'installation fonctionne bien, si vous démarrez python de la manière standard (dans le terminal), le flux de tensor est bien chargé. 

Ma question est la suivante: comment puis-je également le faire fonctionner dans les cahiers Jupyter? 

Cela m'amène à une question plus générale: il semble que mon noyau python dans Jupyter/Anaconda soit distinct du noyau python (ou d'un environnement (je ne suis pas sûr de la terminologie utilisée ici) utilisé dans l'ensemble du système. Ce serait bien si ceux-ci coïncidaient, de sorte que si j'installe une nouvelle bibliothèque python, elle devient accessible à toutes les manières différentes dont je dispose pour exécuter Python.

29

Mettre à jour

Site Web TensorFlow prend en charge cinq installations. 

Si je comprends bien, utiliser Installation de Pip directement conviendrait pour importer TensorFlow dans Jupyter Notebook (tant que Jupyter Notebook a été installé et qu’il n’ya pas eu d’autres problèmes) b/z n’a pas créé d’environnements virtuels. 

Utiliser virtualenv install et conda install aurait besoin d’installer jupyter dans l’environnement TensorFlow nouvellement créé pour permettre à TensorFlow de fonctionner dans Jupyter Notebook (pour plus de détails, reportez-vous à la section suivante sur le post suivant. 

Je pense que docker install peut nécessiter une configuration de port dans VirtualBox pour que TensorFlow fonctionne dans Jupyter Notebook ( voir cet article ). 

Pour installation à partir de sources , cela dépend également de l'environnement dans lequel le code source est construit et installé. S'il est installé dans un environnement virtuel fraîchement créé ou dans un environnement virtuel sur lequel Jupyter Notebook n'est pas installé, il devra également installer Jupyter Notebook dans l'environnement virtuel pour utiliser Tensorflow dans Jupyter Notebook.

Message original

Pour utiliser tensorflow dans Ipython et/ou Jupyter (Ipython) Notebook, vous devez installer Ipython et Jupyter (après avoir installé tensorflow) dans un environnement activé par tensorflow.

Avant d’installer Ipython et Jupyter sous l’environnement tensorflow, effectuez les commandes suivantes dans le terminal:

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

Cela vous dit que lorsque vous ouvrez python depuis un terminal, il utilise celui installé dans les "environnements" où tensorflow est installé. Par conséquent, vous pouvez réellement importer tensorflow avec succès. Cependant, si vous essayez d’exécuter ipython et/ou jupyter notebook, ceux-ci ne sont pas installés dans les "environnements" équipés de tensorflow, il est donc nécessaire de revenir à l’utilisation de l’environnement standard qui n’a pas de module tensorflow. Erreur.

Vous pouvez le vérifier en listant les éléments dans le répertoire envs/tensorflow/bin:

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

Vous verrez qu'il n'y a pas de liste "ipython" et/ou "jupyer".

Pour utiliser tensorflow avec les ordinateurs portables Ipython et/ou Jupyter, il suffit de les installer dans l’environnement tensorflow:

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

Après les avoir installés, il devrait y avoir un "jupyer" et un "ipython" dans le répertoire envs/tensorflow/bin /.

Remarques: Avant d'essayer d'importer le module tensorflow dans le cahier jupyter, essayez de fermer le cahier. Et "source désactiver tensorflow" en premier, puis le réactiver ("source activer tensorflow") pour s'assurer que les choses sont "sur la même page". Rouvrez ensuite le bloc-notes et essayez d’importer tensorflow. Il devrait être importé avec succès (travaillé au moins sur le mien).

56
Zhongyu Kuang

j'ai utilisé ces suivants qui dans virtualenv. 

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

Cela réinstalle les ordinateurs portables ipython et jupyter dans mon environnement virtuel tensorflow. Vous pouvez le vérifier après l'installation avec which ipython et which jupyter. La bin sera sous env virtuel.

NOTEJ'utilise python 3. *

5
as - if

J'ai une autre solution que vous n'avez pas besoin de source activate tensorflow avant d'utiliser jupyter notebook à chaque fois.

Partion 1

Premièrement, vous devez vous assurer que vous avez installé jupyter dans votre virtualenv. Si vous avez installé, vous pouvez ignorer cette section (Utilisez which jupyter pour vérifier). Sinon, vous pourriez exécuter source activate tensorflow, puis installer jupyter dans votre virtualenv avec conda install jupyter. (Vous pouvez aussi utiliser pip.)

Partion 2 

1.Dans votre environnement virtuel, exécutez

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

Cela créera un kernelspec pour votre virtualenv et vous indiquera où il se trouve:

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

Où pythonX correspondra à la version de Python dans votre virtualenv.

2.Copiez le nouveau kernelspec quelque part utile. Choisissez un kernel_name pour votre nouveau noyau autre que python2 ou python3 ou celui que vous avez utilisé auparavant, puis:

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

3.Si vous souhaitez modifier le nom du noyau indiqué par IPython, vous devez éditer ~/.ipython/kernels/<kernel_name>/kernel.json et modifier la clé JSON appelée display_name pour en faire un nom de votre choix.

4.Vous devriez maintenant pouvoir voir votre noyau dans le menu du cahier IPython: Kernel -> Change kernel et pouvoir ainsi y accéder (vous devrez peut-être actualiser la page avant qu'elle n'apparaisse dans la liste). IPython se souviendra ensuite du noyau à utiliser pour ce cahier.

Référence .

4
user5746429

Voici ce que j'ai fait pour activer tensorflow dans Anaconda -> Jupyter. 

  1. Installez Tensorflow en suivant les instructions fournies à la section 
  2. Allez dans/Users/nom d'utilisateur/anaconda/env et assurez-vous que Tensorflow est installé.
  3. Ouvrez le navigateur Anaconda et allez dans "Environnements" (situé dans la navigation de gauche)
  4. Sélectionnez "Tous" dans le premier menu déroulant et recherchez Tensorflow.
  5. S'il n'est pas activé, activez-le dans la case à cocher et confirmez le processus suivant. 
  6. Ouvrez maintenant un nouveau bloc-notes Jupyter et le tensorflow devrait fonctionner 
2
Ankur Shrivastav

Votre installation d’Anaconda est probablement passée dans un répertoire différent de celui de votre installation de Python

Par exemple, sur ma machine, je peux trouver l'emplacement ici

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

Lorsque vous tapez python, il essaie de le trouver dans PATH en allant de gauche à droite. Donc, vous pouvez avoir une autre version de python dans un dossier avant le dossier Anaconda, et il l’utilisera. Pour corriger cela, vous pouvez faire export PATH=.... pour changer le chemin, et mettre le répertoire Anaconda devant, de sorte qu'il prenne python à la place de la valeur par défaut,

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

J'ai installé PIP avec Conda conda install pip au lieu de apt-get install python-pip python-dev.

Alors installé tensorflow Utilisez 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

Ensuite, cela fonctionnera dans le cahier Jupyter. 

1
Q.Liu

J'ai trouvé la solution de quelqu'un d'autre post. C'est simple et ça marche bien! 

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

Installez simplement les éléments suivants dans l'invite de commande et remplacez le noyau par Python 3 dans Jupyter Notebook. Il importera tensorflow avec succès.

pip installer tornade == 4.5.3

pip installer ipykernel == 4.8.2

(Poste original: https://github.com/tensorflow/tensorflow/issues/11851

0
LovelyVV

J'ai eu un problème similaire lors de l'utilisation d'une image Ubuntu 16 personnalisée. Le problème était lié à une version existante de numpy déjà installée sur mon système.

J'ai d'abord essayé

Sudo pip3 install tensorflow

Cela a entraîné l'exception suivante:

Exception: Traceback (dernier appel passé): Fichier "/anaconda/envs/py35/lib/python3.5/shutil.py", ligne 538, dans move os.rename (src, real_dst) PermissionError: [Errno 13] Autorisation refusée: '/anaconda/envs/py35/lib/python3.5/site-packages/numpy' -> '/ tmp/pip-co73r3hm-uninstall/anaconda/envs/py35/lib/python3 .5/site-packages/numpy '

Si vous rencontrez des problèmes avec cette commande, consultez la documentation:

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

Cependant, mon système n'a pas pu localiser pip3

Sudo: commande pip3 non trouvée

La solution ultime consistait à créer une symlink pour pip3

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

Enfin, la commande suivante a fonctionné sans problème

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

J'ai vérifié l'installation dans la terminal et également vérifié une importation réussie dans mon Jupyter Notebook

import tensorflow as tf
0
Brian Vanover

Je me demande s'il ne suffit pas de simplement lancer ipython à partir d'un environnement tensorflow. C’est-à-dire 1) d’abord activer tensorflow virtualenv avec:

source ~/tensorflow/bin/activate

2) lancer ipython sous environnement tensorflow

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

La réponse acceptée (par Zhongyu Kuang) vient de m'aider. Ici, j'ai créé un fichier environment.yml qui me permet de rendre ce processus d'installation conda/tensorflow reproductible.

Étape 1 - créer un fichier Conda environment.yml

environment.yml ressemble à ceci:

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

Remarque:

  • Remplacez simplement le nom par ce que vous voulez. (le mien est hello-tensorflow)
  • Remplacez simplement la version python par ce que vous voulez. (le mien est 3.6)
  • Il suffit de remplacer l'URL d'installation du programme tensorflow pip par celui que vous voulez (le mien est l'URL Tensorflow où Python 3.6 prend en charge le processeur graphique).

Étape 2 - créer l'environnement Conda

Le environment.yml étant dans le chemin actuel sur lequel vous vous trouvez, cette commande crée l'environnement hello-tensorflow (ou le nom que vous avez renommé):

conda env create -f environment.yml

Étape 3: activer la source

Activer le nouvel environnement créé:

source activate hello-tensorflow

Étape 4 - quel python/jupyter/ipython

quel python ...

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

quel jupyter ...

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

quel ipython ...

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

Étape 5

Vous devriez maintenant pouvoir importer tensorflow depuis python, jupyter (console/qtconsole/notebook, etc.) et ipython.

0
Atlas7

Je pense que votre question est très similaire avec la question post ici. Ordinateur portable jupyter Windows 7 exécutant tensorflow . Comme Yaroslav l'a mentionné, vous pouvez essayer 

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

0
Yan Zhao