Проблема с TensorFlow в ноутбуке Jupyter

Я установил Jupyter ноутбуки в Ubuntu 14.04 через Anaconda раньше, и только сейчас я установил TensorFlow. Я бы хотел, чтобы TensorFlow работал независимо от того, работаю ли я в ноутбуке или просто сценарии. В моей попытке добиться этого, я закончил установку TensorFlow дважды, однажды используя Anaconda, и однажды используя pip. Установка Anaconda работает, но мне нужно предисловие к любому вызову python с помощью "source activate tensorflow". И установка pip прекрасно работает, если запускать python стандартным способом (в терминале), то тензорный поток загружается просто отлично.

Мой вопрос: как я могу заставить его работать в ноутбуках Jupyter?

Это приводит меня к более общему вопросу: похоже, что мое ядро python в Jupyter/Anaconda отделено от ядра python (или среды, не уверенной в терминологии здесь), используемой в системе. Было бы неплохо, если бы они совпали, так что, если я установлю новую библиотеку python, она станет доступна для всех различных способов работы python.

Ответ 1

Обновить

Сайт TensorFlow поддерживает пять установок.

Насколько я понимаю, при непосредственном использовании установки на ПП было бы очень удобно импортировать TensorFlow в Jupyter Notebook (до тех пор, пока Jupyter Notebook был установлен, а других проблем не было) b/z не создавал виртуальных сред.

Использование virtualenv установки и Конда установки потребуется установить jupyter во вновь созданную среду TensorFlow, чтобы TensorFlow работать в Jupyter Notebook (см следующий оригинальный пост раздел для более подробной информации).

Я считаю, что установка докеров может потребовать некоторую настройку порта в VirtualBox, чтобы заставить TensorFlow работать в Jupyter Notebook (см. Этот пост).

Для установки из источников это также зависит от того, в какой среде встроен и установлен исходный код. Если он установлен в только что созданную виртуальную среду или виртуальную среду, в которой не установлен Jupyter Notebook, также потребуется установить Jupyter Notebook в виртуальную среду, чтобы использовать Tensorflow в ноутбуке Jupyter.

Оригинальное сообщение

Чтобы использовать тензорный поток в ноутбуке Ipython и/или Jupyter (Ipython), вам необходимо установить Ipython и Jupyter (после установки тензорного потока) в среде с активированным тензором.

Перед установкой Ipython и Jupyter в среде tensorflow, если вы выполните следующие команды в терминале:

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 из терминала, он использует тот, который установлен в "средах", где установлен тензор. Поэтому вы можете успешно импортировать shadoworflow. Однако, если вы пытаетесь запустить ipython и/или jupyter ноутбук, они не установлены в "средах", оборудованных тензорным потоком, поэтому он должен вернуться к использованию обычной среды, в которой нет модуля tensorflow, поэтому вы получаете импорт ошибка.

Вы можете проверить это, указав элементы в каталоге envs/tensorflow/bin:

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

Вы увидите, что нет списка "ipython" и/или "jupyer".

Чтобы использовать тензорный поток с ноутбуком Ipython и/или Jupyter, просто установите их в среду tensorflow:

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

После их установки в каталоге envs/tensorflow/bin/должно появиться "jupyer" и "ipython".

Примечания. Прежде чем пытаться импортировать модуль tenorflow в ноутбуке jupyter, попробуйте закрыть ноутбук. И сначала "дезактивируйте источник", а затем снова активируйте его ("источник активирует тензорный поток"), чтобы убедиться, что все "на одной странице". Затем откройте ноутбук и попробуйте импортировать тензор. Он должен быть успешно импортирован (по крайней мере, работал на шахте).

Ответ 2

Я использовал следующие, которые в virtualenv.

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

Это переустанавливает как ipython, так и jupyter-ноутбук в моей виртуальной среде tensorflow. Вы можете проверить его после установки, с помощью which ipython и which jupyter. bin будет находиться под виртуальным env.

ПРИМЕЧАНИЕ. Я использую python 3. *

Ответ 3

У меня есть другое решение, которое вам не нужно, чтобы source activate tensorflow прежде jupyter notebook каждый раз использовать jupyter notebook.

Часть 1

Во-первых, вы должны убедиться, что вы установили jupyter в свой virtualenv. Если вы установили, вы можете пропустить этот раздел (использовать, which jupyter проверить). Если вы этого не сделаете, вы можете запустить source activate tensorflow, а затем установить jupyter в свой virtualenv с помощью conda install jupyter. (Вы также можете использовать pip.)

Часть 2

1. В пределах вашего virtualenv, запустите

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

Это создаст kernelspec для вашего virtualenv и скажет вам, где он находится:

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

Где pythonX будет соответствовать версии Python в вашем virtualenv.

2.Копируйте новый kernelspec где-нибудь полезный. Выберите 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 и изменить ключ JSON с именем display_name который вам нравится.

4. Теперь вы можете увидеть свое ядро в меню ноутбука IPython: Kernel → Change kernel и быть в состоянии переключиться на него (возможно, вам нужно обновить страницу до ее появления в списке). IPython запомнит, какое ядро использовать для этого ноутбука с этого момента.

Ссылка.

Ответ 4

Возможно, ваша установка Anaconda попала в другую директорию, чем ваша установка Python

Например, на моей машине я могу найти место здесь

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

Когда вы вводите python, он пытается найти его в PATH в порядке слева направо. Таким образом, у вас может быть другая версия python в папке перед папкой Anaconda, и она будет использовать ее. Чтобы исправить это, вы можете export PATH=.... чтобы изменить путь, и поставить каталог Anaconda впереди, чтобы он вместо этого использовал python вместо значения по умолчанию, т.е.

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

Ответ 5

Вот что я сделал, чтобы включить тензор в Anaconda → Jupyter.

  1. Установите Tensorflow, используя инструкции, приведенные в
  2. Перейдите в раздел /Users/username/anaconda/env и убедитесь, что установлен Tensorflow
  3. Откройте навигатор Anaconda и перейдите в раздел "Окружающая среда" (расположенный в левой навигационной панели)
  4. Выберите "Все" в первом раскрывающемся списке и найдите Tensorflow
  5. Если он не включен, включите его в флажке и подтвердите следующий процесс.
  6. Теперь откройте новый ноутбук Jupyter, и тензор должен работать

Ответ 6

Я установил PIP с помощью Conda conda install pip вместо apt-get install python-pip python-dev.

Затем установленный тензорный поток использует установку:

# 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.

Ответ 8

У меня была аналогичная проблема при использовании пользовательского образа Ubuntu 16. Проблема была связана с существующей версией numpy которая уже была установлена в моей системе.

Я сначала попробовал

sudo pip3 install tensorflow

Это привело к следующему исключению:

Исключение: Traceback (последний последний вызов): Файл "/anaconda/envs/py35/lib/python3.5/shutil.py", строка 538, в движении os.rename(src, real_dst) PermissionError: [Errno 13] Permission denied: '/anaconda/envs/py35/lib/python3.5/site-packages/numpy' → '/tmp/pip-co73r3hm-uninstall/anaconda/envs/py35/lib/python3.5/site-packages/NumPy"

Документы сообщают, что если у вас возникнут какие-либо проблемы с этой командой, попробуйте следующее:

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 заключалось в создании symlink для pip3

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

Ответ 9

Принятый ответ (Zhongyu Kuang) только что помог мне. Здесь я создаю файл environment.yml который позволяет мне сделать этот процесс установки conda/tensorflow повторяемым.

Шаг 1 - создайте файл Conda environment.yml

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)
  • Просто замените версию python на то, что вы хотите. (шахта - 3.6)
  • Просто замените URL-адрес назначения tensorflow pip на то, что вы хотите (мой - это URL-адрес Tensorflow, где Python 3.6 с поддержкой GPU)

Шаг 2 - создание среды Conda

С environment.yml быть в текущем пути вы находитесь, эта команда создает среду hello-tensorflow (или как вы переименовали его):

conda env create -f environment.yml

Шаг 3: активировать источник

Активируйте созданную среду:

source activate hello-tensorflow

Шаг 4 - какой python/jupyter/ipython

который python...

(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

Шаг 5

Теперь вы можете импортировать shadoworflow из python, jupyter (console/qtconsole/notebook и т.д.) И ipython.

Ответ 10

Интересно, достаточно ли просто запускать ipython из среды ambient. То есть 1) сначала активируйте virtualorv с тензорным потоком:

source ~/tensorflow/bin/activate

2) запуск ipython под тензометрическую среду

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

Ответ 11

Я нашел решение от кого-то другого. Это просто и хорошо работает!

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

Просто установите следующее в командной строке и смените ядро на Python 3 в Jupyter Notebook. Он успешно импортирует тензор.

pip install tornado == 4.5.3

pip install ipykernel == 4.8.2

(Orginial post: https://github.com/tensorflow/tensorflow/issues/11851)