python - mac - Problemas con TensorFlow en Jupyter Notebook
install tensorflow windows (11)
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.
Creo que tu pregunta es muy similar a la pregunta que aparece aquí. Windows 7 jupyter notebook ejecutando tensorflow . Como mencionó Yaroslav, puedes intentar
conda install -c http://conda.anaconda.org/jjhelmus tensorflow
.
Encontré la solución de la publicación de otra persona. ¡Es simple y funciona bien!
http://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs
Simplemente instale lo siguiente en el símbolo del sistema y cambie kernel a Python 3 en Jupyter Notebook. Importará tensorflow con éxito.
pip install tornado == 4.5.3
pip install ipykernel == 4.8.2
(Publicación original: https://github.com/tensorflow/tensorflow/issues/11851 )
Esto es lo que hice para habilitar Tensorflow en Anaconda -> Jupyter.
- Instale Tensorflow usando las instrucciones provistas en
- Vaya a / Users / username / anaconda / env y asegúrese de que Tensorflow esté instalado
- Abra el navegador Anaconda y vaya a "Entornos" (ubicado en la barra de navegación de la izquierda)
- Seleccione "Todos" en la primera lista desplegable y busque Tensorflow
- Si no está habilitado, habilítelo en la casilla de verificación y confirme el proceso que sigue.
- Ahora abra un nuevo cuaderno Jupyter y tensorflow debería funcionar
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.
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
Su instalación Anaconda probablemente fue a un directorio diferente de su instalación de Python
Por ejemplo, en mi máquina puedo encontrar la ubicación aquí
yaroslavvb-macbookpro:~ yaroslavvb$ which ipython
/Users/yaroslavvb/anaconda/bin/ipython
Cuando escribe python
, intenta encontrarlo en PATH
yendo de izquierda a derecha. Entonces puedes tener otra versión de python
en una carpeta antes de la carpeta Anaconda, y la usará. Para solucionarlo, puede export PATH=....
para cambiar la ruta, y poner el directorio Anaconda al frente, de modo que se tome python
desde allí en lugar del predeterminado, es decir,
export PATH=/Users/yaroslavvb/anaconda/bin:$PATH
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.
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
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. *
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).