Проблема с 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.
- Установите Tensorflow, используя инструкции, приведенные в
- Перейдите в раздел /Users/username/anaconda/env и убедитесь, что установлен Tensorflow
- Откройте навигатор Anaconda и перейдите в раздел "Окружающая среда" (расположенный в левой навигационной панели)
- Выберите "Все" в первом раскрывающемся списке и найдите Tensorflow
- Если он не включен, включите его в флажке и подтвердите следующий процесс.
- Теперь откройте новый ноутбук 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.
Ответ 7
Я думаю, что ваш вопрос очень похож на этот вопрос. Windows 7 jupyter notebook, выполняющий тензор. Как отметил Ярослав, вы можете попробовать
conda install -c http://conda.anaconda.org/jjhelmus tensorflow
.
Ответ 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)