python install - Problemas con TensorFlow en Jupyter Notebook




instalar windows (10)

Instalé notebooks Jupyter en Ubuntu 14.04 vía Anaconda anteriormente, y recién ahora instalé TensorFlow. Me gustaría que TensorFlow funcione independientemente de si estoy trabajando en un bloc de notas o simplemente escribiendo. En mi intento de lograr esto, terminé instalando TensorFlow dos veces, una usando Anaconda y una vez usando pip. La instalación de Anaconda funciona, pero debo preceder cualquier llamada a python con "source activate tensorflow". Y la instalación de pip funciona muy bien, si inicia python de la manera estándar (en la terminal), entonces tensorflow carga muy bien.

Mi pregunta es: ¿cómo puedo hacer que funcione en los cuadernos Jupyter?

Esto me lleva a una pregunta más general: parece que mi kernel python en Jupyter / Anaconda está separado del kernel de python (o el entorno? No estoy seguro acerca de la terminología aquí) utilizado en todo el sistema. Sería bueno si coincidieran, de modo que si instalo una nueva biblioteca de Python, se vuelve accesible para todas las formas variadas que tengo de ejecutar python.


Answers

Instalé PIP con Conda conda install pip lugar de apt-get install python-pip python-dev .

Luego instaló 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

Entonces funcionará en el cuaderno jupyter.


Actualizar

El sitio web de TensorFlow admite cinco instalaciones.

A mi entender, el uso directo de la instalación de Pip sería bueno para importar TensorFlow en Jupyter Notebook (siempre y cuando se haya instalado Jupyter Notebook y no haya otros problemas) porque no creó ningún entorno virtual.

Usando virtualenv install y conda install necesitaría instalar jupyter en el entorno TensorFlow recién creado para permitir que TensorFlow funcione en Jupyter Notebook (consulte la siguiente sección de publicación original para más detalles).

Creo que la instalación de Docker puede requerir alguna configuración de puerto en VirtualBox para hacer que TensorFlow funcione en Jupyter Notebook ( mira esta publicación ).

Para la instalación desde las fuentes , también depende del entorno en el que se crea e instala el código fuente. Si está instalado en un entorno virtual recién creado o en un entorno virtual que no tenía Jupyter Notebook instalado, también necesitaría instalar Jupyter Notebook en el entorno virtual para usar Tensorflow en Jupyter Notebook.

Publicación original

Para usar tensorflow en Ipython y / o Jupyter (Ipython) Notebook, necesitarás instalar Ipython y Jupyter (después de instalar tensorflow) bajo el entorno de tensorflow activado.

Antes de instalar Ipython y Jupyter en el entorno tensorflow, si realiza los siguientes comandos en la 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

Esto te dice que cuando abres Python desde la terminal, está usando la instalada en los "entornos" donde tensorflow está instalado. Por lo tanto, puede importar Tensorflow con éxito. Sin embargo, si está tratando de ejecutar ipython y / o jupyter notebook, estos no están instalados en los "entornos" equipados con tensorflow, por lo tanto, tiene que volver a usar el entorno regular que no tiene un módulo tensorflow, por lo que obtiene una importación error.

Puede verificar esto al enumerar los elementos en el directorio envs / tensorflow / bin:

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

Verá que no hay listados de "ipython" y / o "jupyer".

Para usar tensorflow con Ipython y / o Jupyter notebook, simplemente instálelos en el entorno tensorflow:

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

Después de instalarlos, debería aparecer un "jupyer" y un "ipython" en el directorio envs / tensorflow / bin /.

Notas: Antes de intentar importar el módulo tensorflow en la notebook jupyter, intente cerrar la notebook. Y "fuente desactivar el flujo de tensor" primero, y luego reactivarlo ("fuente activar flujo de tensor") para asegurarse de que las cosas están "en la misma página". A continuación, vuelva a abrir el portátil e intente importar Tensorflow. Debería importarse con éxito (trabajó al menos en la mía).



Tengo otra solución que no necesita para source activate tensorflow antes de usar el jupyter notebook todo el tiempo.

Partion 1

En primer lugar, debe asegurarse de haber instalado jupyter en su virtualenv. Si tiene instalado, puede omitir esta sección (Usar which jupyter para verificar). Si no, puede ejecutar source activate tensorflow , y luego instalar jupyter en su virtualenv mediante conda install jupyter . (También puedes usar pip ).

Partion 2

1.Desde dentro de tu virtualenv, ejecuta

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

Esto creará un kernelspec para su virtualenv y le dirá dónde está:

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

Donde pythonX coincidirá con la versión de Python en su virtualenv.

2. Copie la nueva kernelspec en algún lugar útil. Elija un kernel_name para su nuevo kernel que no sea python2 o python3 o uno que haya usado antes y luego:

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

3.Si desea cambiar el nombre del kernel que IPython le muestra, debe editar ~/.ipython/kernels/<kernel_name>/kernel.json y cambiar la clave JSON llamada display_name para que sea el nombre que desee.

4. Ahora debería poder ver su kernel en el menú del notebook IPython: Kernel -> Change kernel y así poder cambiarlo (puede que necesite actualizar la página antes de que aparezca en la lista). IPython recordará qué kernel usar para ese notebook a partir de ese momento.

Reference .


Tuve un problema similar al usar una imagen personalizada de Ubuntu 16 . El problema estaba relacionado con una versión existente de numpy que ya estaba instalada en mi sistema.

Intenté inicialmente

sudo pip3 install tensorflow

Esto dio lugar a la siguiente excepción:

Excepción: Trazabilidad (llamada más reciente): Archivo "/anaconda/envs/py35/lib/python3.5/shutil.py", línea 538, en movimiento os.rename (src, real_dst) PermissionError: [Errno 13] Permiso denied: '/anaconda/envs/py35/lib/python3.5/site-packages/numpy' -> '/tmp/pip-co73r3hm-uninstall/anaconda/envs/py35/lib/python3.5/site-packages/ numpy '

Los documentos indican que si encuentra algún problema con este comando, intente lo siguiente:

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

Sin embargo, mi sistema no pudo ubicar pip3

comando sudo: pip3 no encontrado

La solución de ulitmate fue crear un symlink para pip3

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

Finalmente, el siguiente comando funcionó sin problemas

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

Verifiqué la instalación en la terminal y también verifiqué una importación exitosa en mi Jupyter Notebook

import tensorflow as tf


La respuesta aceptada (por Zhongyu Kuang) me acaba de ayudar. Aquí he creado un archivo environment.yml que me permite hacer este proceso de instalación conda / tensorflow repetible.

Paso 1: crea un archivo Conda environment.yml

environment.yml ve así:

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

Nota:

  • Simplemente reemplace el nombre a lo que quiera. (el mío es hello-tensorflow )
  • Simplemente reemplace la versión de Python por la que desee. (el mío es 3.6 )
  • Simplemente reemplace la URL de instalación de pipa tensorflow por la que desee (la mía es la URL de Tensorflow donde Python 3.6 con soporte para GPU)

Paso 2: crea el entorno de Conda

Con environment.yml en la ruta actual en la que se encuentra, este comando crea el entorno hello-tensorflow (o lo que sea que lo haya cambiado de nombre):

conda env create -f environment.yml

Paso 3: la fuente activa

Activar el nuevo entorno creado:

source activate hello-tensorflow

Paso 4 - que python / jupyter / ipython

que pitón ...

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

que jupyter ...

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

que ipython ...

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

Paso 5

Ahora debería poder importar tensorflow de python, jupyter (console / qtconsole / notebook, etc.) e ipython.


Me pregunto si no es suficiente simplemente lanzar ipython desde tensorflow environnement. Es decir 1) primero active tensorflow virtualenv con:

source ~/tensorflow/bin/activate

2) lanzar ipython bajo entorno tensorflow

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

utilicé estos siguientes que en virtualenv.

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

Esto reinstala el cuaderno ipython y jupyter en mi entorno virtual tensorflow. Puede verificarlo después de la instalación mediante el which ipython y which jupyter . El bin estará bajo el env virtual.

NOTA , estoy usando Python 3. *


No creo que las otras respuestas funcionen más, ya que Conda dejó de configurar automáticamente entornos como núcleos jupyter. Debe agregar kernels manualmente para cada entorno de la siguiente manera:

source activate myenv
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

Como se documenta aquí: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments También vea este problema .

Adición: Debería poder instalar el paquete conda install nb_conda_kernels con conda install nb_conda_kernels para agregar todos los entornos automáticamente, consulte https://github.com/Anaconda-Platform/nb_conda_kernels





python tensorflow jupyter