2016-05-05 5 views
24

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

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

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

+0

Какую ошибку сообщ вы получили? Вы не можете импортировать тензор в Jupyter? –

+1

------------------------------------------------- -------------------------- ImportError Traceback (последний последний вызов) в () ----> 1 import tensorflow as tf ImportError: Нет модуля с именем tensorflow –

ответ

47

Обновление

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

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

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

Я считаю, что docker install может потребовать установки порта в VirtualBox, чтобы заставить TensorFlow работать в ноутбуке Jupyter (see this post).

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

Оригинал Сообщение

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

Перед установкой 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 

Это говорит о том, что при открытии питона от терминала, он использует один установленные в " среды ", где установлен тензорный поток. Поэтому вы можете успешно импортировать shadoworflow. Однако, если вы пытаетесь запустить ipython и/или jupyter ноутбук, они не установлены в «средах», оборудованных тензорным потоком, поэтому он должен вернуться к использованию обычной среды, в которой нет модуля tensorflow, поэтому вы получаете импорт ошибка.

Вы можете проверить это путем перечисления из пунктов под envs директории/tensorflow/бен:

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

Вы увидите, что нет «IPython» и/или «jupyer» пречисление.

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

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

После их установки, должно быть «jupyer» и «IPython» показать в envs/tensorflow/bin /.

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

+1

Это действительно помогло мне. Большое спасибо Zhongyu –

+0

Его интересно, что, когда я использовал virtualenv и python3.4 для установки tensorflow, ваше предложение по деактивации и затем возобновлению работало для меня! но для другой установки, которая использует python2, она просто не работает! – Breeze

+0

@ Хоссейн какая установка вы использовали? [Веб-сайт TensorFlow] (https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html#virtualenv-installation) представил пять установок. Я думаю, что если вы используете установку pip, вам не нужно будет дезактивировать материал. Для этого понадобится установка Virtualenv и conda. Я где-то читал, что установка докеров требует некоторой настройки портала на виртуальном ящике, чтобы включить jupyter, я не совсем уверен в установке из источников. –

2

Ваш Anaconda инсталляцию вероятно пошел в другой каталог, чем ваш Python установить

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

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

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

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

Хорошо, спасибо, я думаю, что это проблема. После этого у меня появилось другое сообщение об ошибке, на этот раз относящееся к «ImportError: numpy.core.multiarray не удалось импортировать» (фактическое сообщение об ошибке довольно длинное). –

+0

Я думаю, что у меня есть обратная проблема, я думаю, что когда я запускаю Jupyter, ядро ​​python использует установку python в пути anaconda, но я хочу вместо этого использовать python в пути/usr/bin. –

0

Я думаю, ваш вопрос очень схож с вопросом постом Вот. Windows 7 jupyter notebook executing tensorflow. Как отметил Ярослав, вы можете попробовать

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

1

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

Затем устанавливается tensorflow использование 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

Тогда он будет работать в jupyter ноутбука.

+0

Если вы используете conda, вам следует избегать «sudo». Если вы явно не пытаетесь выполнить некоторую общесистемную установку, вам никогда не понадобятся права sudo. В основном это приводит только к ошибкам путаницы и разрешений. – msarahan

+0

@msarahan Спасибо! Я изменил это. –

+0

Я использую anaconda, а затем тензорный поток не может быть импортирован в блокнот юпитера в Интернете, например, сафари. (Tensorflow можно импортировать, если я использую терминал для открытия «ipython»!). Во всяком случае, после использования pip install проблема решена. Https: //www.tensorflow.org/versions/r0.11/get_started/os_setup.html#using-pip –

4

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

Partion 1

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

Partion 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.Copy новый 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 запомнит, какое ядро ​​использовать для этого ноутбука с этого момента.

Reference.

0

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

Первоначально я пытался

sudo pip3 install tensorflow 

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

Exception: Traceback (most recent call last): File "/anaconda/envs/py35/lib/python3.5/shutil.py", line 538, in move 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 command not found

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 
0

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

Шаг 1 - создать среду Конда.Файл 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)
  • Просто замените tensorflow пункт установить URL, чтобы все, что вы хотите (у меня есть URL Tensorflow где Python 3.6 с поддержкой GPU)

Шаг 2 - создать среду Конда

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

conda env create -f environment.yml 

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

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

source activate hello-tensorflow 

Шаг 4 - который питона/jupyter/IPython

какой питона ...

(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 

w Хич IPython ...

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

Шаг 5

Теперь вы должны быть в состоянии импортировать tensorflow из питона, jupyter (консоли/qtconsole/ноутбук и т.д.) и IPython.

1

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

  1. Установите Tensorflow, следуя инструкциям на
  2. Перейти к/Users/имя пользователя/анаконды/окр и обеспечения установлен Tensorflow
  3. Открыть навигатор Анаконды и перейдите в раздел «Среды» (расположенные в левой панели навигации)
  4. Выберите «Все» в первом окне и найдите Tensorflow
  5. Если его не разрешено, включите его в поле и подтвердите следующий процесс.
  6. Теперь откройте новый Jupyter ноутбук и tensorflow должен работать
3

я использовал эти после чего в virtualenv.

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

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

NOTE I am using python 3.*

0

Интересно, достаточно ли просто запускать ipython из среды ambientorment. Это 1) первый активировать tensorflow virtualenv с:

source ~/tensorflow/bin/activate 

2) запустить IPython под tensorflow Environnement

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