Как установить и использовать TensorFlow в Ubuntu 16.04

Вступление

TensorFlow - это программное обеспечение для машинного обучения с открытым исходным кодом, созданное Google для обучения нейронных сетей. Нейронные сети TensorFlow выражаются в видеstateful dataflow graphs. Каждый узел на графике представляет операции, выполняемые нейронными сетями на многомерных массивах. Эти многомерные массивы обычно известны как «тензоры», отсюда и название TensorFlow.

TensorFlow - это программная системаdeep learning. TensorFlow хорошо работает для поиска информации, что было продемонстрировано Google в том, как они занимаются поисковым ранжированием в своей системе искусственного интеллекта машинного обучения,RankBrain. TensorFlow может выполнять распознавание изображений, как показано вInception Google, а также распознавание звука на человеческом языке. Он также полезен при решении других задач, не относящихся к машинному обучению, напримерpartial differential equations.

Архитектура TensorFlow позволяет развертывать на нескольких процессорах или графических процессорах на настольном компьютере, сервере или мобильном устройстве. Также существуют расширения для интеграции сCUDA, платформой параллельных вычислений от Nvidia. Это дает пользователям, развертывающим на графическом процессоре, прямой доступ к виртуальному набору команд и другим элементам графического процессора, которые необходимы для параллельных вычислительных задач.

В этом руководстве вы установите версию TensorFlow «CPU support only». Эта установка идеально подходит для людей, которые хотят установить и использовать TensorFlow, но у которых нет видеокарты Nvidia или нет необходимости запускать приложения, критичные для производительности.

Вы можете установить TensorFlow несколькими способами. Каждый метод имеет свой вариант использования и среду разработки:

  • Python and Virtualenv: при этом подходе вы устанавливаете TensorFlow и все пакеты, необходимые для использования TensorFlow в виртуальной среде Python. Это изолирует вашу среду TensorFlow от других программ Python на той же машине.

  • Native pip: с помощью этого метода вы устанавливаете TensorFlow в своей системе глобально. Это рекомендуется для людей, которые хотят сделать TensorFlow доступным для всех в многопользовательской системе. Этот метод установки не изолирует TensorFlow в изолированной среде и может мешать другим установкам или библиотекам Python.

  • Docker: Docker - это среда выполнения контейнера, которая полностью изолирует ее содержимое от уже существующих пакетов в вашей системе. В этом методе вы используете контейнер Docker, который содержит TensorFlow и все его зависимости. Этот метод идеален для включения TensorFlow в более крупную архитектуру приложений, уже использующую Docker. Однако размер образа Docker будет довольно большим.

В этом руководстве вы установите TensorFlow в виртуальной среде Python с помощьюvirtualenv. Этот подход изолирует установку TensorFlow и быстро запускает ее в работу. После завершения установки вы подтвердите установку, запустив короткую программу TensorFlow, а затем используйте TensorFlow для распознавания изображений.

Предпосылки

Прежде чем начать этот урок, вам понадобится следующее:

  • Один сервер Ubuntu 16.04 с как минимум 1 ГБ ОЗУ, настроенный поthe Ubuntu 16.04 initial server setup guide, включая пользователя sudo без полномочий root и брандмауэр. Вам понадобится как минимум 1 ГБ ОЗУ для успешного выполнения последнего примера в этом руководстве.

  • Python 3.3 или выше иvirtualenv установлены. СледуйтеHow to Install Python 3 on Ubuntu 16.04, чтобы настроить Python иvirtualenv.

  • Git установлен, что вы можете сделать, выполнивHow To Install Git on Ubuntu 16.04. Вы будете использовать это, чтобы загрузить репозиторий примеров.

[[step-1 -—- install-tensorflow]] == Шаг 1. Установка TensorFlow

На этом этапе мы собираемся создать виртуальную среду и установить TensorFlow.

Сначала создайте каталог проекта с именемtf-demo:

mkdir ~/tf-demo

Перейдите в только что созданный каталогtf-demo:

cd ~/tf-demo

Затем создайте новую виртуальную среду с именемtensorflow-dev. Выполните следующую команду, чтобы создать среду:

python3 -m venv tensorflow-dev

Это создает новый каталогtensorflow-dev, который будет содержать все пакеты, которые вы устанавливаете, пока эта среда активирована. Он также включаетpip и автономную версию Python.

Теперь активируйте вашу виртуальную среду:

source tensorflow-dev/bin/activate

После активации вы увидите нечто похожее на это в своем терминале:

(tensorflow-dev)username@hostname:~/tf-demo $

Теперь вы можете установить TensorFlow в вашей виртуальной среде.

Выполните следующую команду, чтобы установить и обновить до последней версии TensorFlow, доступной вPyPi:

pip3 install --upgrade tensorflow

TensorFlow установит:

OutputCollecting tensorflow
  Downloading tensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (39.3MB)
    100% |████████████████████████████████| 39.3MB 35kB/s

...

Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0

[.Примечание]##

Если вы хотите деактивировать виртуальную среду в любое время, введите команду:

deactivate

Чтобы повторно активировать среду позже, перейдите в каталог проекта и запуститеsource tensorflow-dev/bin/activate.

Теперь, когда вы установили TensorFlow, давайте убедимся, что установка TensorFlow работает.

[[step-2 -—- validating-installation]] == Шаг 2 - Проверка установки

Чтобы проверить правильность установки TensorFlow, мы запустим простую программу в TensorFlow как пользователь без полномочий root. Мы будем использовать пример канонического новичка «Привет, мир!» Как форму проверки. Вместо того, чтобы создавать файл Python, мы создадим эту программу, используяPython’s interactive console.

Чтобы написать программу, запустите ваш интерпретатор Python:

python

Вы увидите следующее приглашение появится в вашем терминале

>>>

Это приглашение для интерпретатора Python, и оно указывает, что вы готовы начать ввод некоторых операторов Python.

Сначала введите эту строку, чтобы импортировать пакет TensorFlow и сделать его доступным как локальную переменнуюtf. НажмитеENTER после ввода строки кода:

import tensorflow as tf

Затем добавьте эту строку кода, чтобы установить сообщение «Привет, мир!»:

hello = tf.constant("Hello, world!")

Затем создайте новый сеанс TensorFlow и назначьте его переменнойsess:

sess = tf.Session()

[.Примечание]##

Note: в зависимости от вашей среды вы можете увидеть следующий вывод:

Output2017-06-18 16:22:45.956946: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957158: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957282: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957404: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-18 16:22:45.957527: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

Это говорит о том, что у вас естьinstruction set, который может быть оптимизирован для повышения производительности с помощью TensorFlow. Если вы видите это, можете проигнорировать это и продолжить.

Наконец, введите эту строку кода, чтобы распечатать результат выполнения сеанса TensorFlowhello, который вы создали в предыдущих строках кода:

print(sess.run(hello))

Вы увидите этот вывод в своей консоли:

OutputHello, world!

Это указывает на то, что все работает, и вы можете начать использовать TensorFlow, чтобы сделать что-то более интересное.

Выйдите из интерактивной консоли Python, нажавCTRL+D.

Теперь давайте использовать API распознавания изображений TensorFlow, чтобы лучше познакомиться с TensorFlow.

[[step-3 -—- using-tensorflow-for-image-распознавание]] == Шаг 3 - Использование TensorFlow для распознавания изображений

Теперь, когда TensorFlow установлен и вы проверили его, запустив простую программу, давайте взглянем на возможности TensorFlow по распознаванию изображений.

Для того, чтобы классифицировать изображение, вам нужно тренировать модель. Затем вам нужно написать некоторый код для использования модели. Чтобы узнать больше об этих концепциях, вы можете взглянуть наAn Introduction to Machine Learning.

TensorFlow предоставляетrepository of models and examples, включая код и обученную модель для классификации изображений.

Используйте Git, чтобы клонировать репозиторий моделей TensorFlow из GitHub в каталог вашего проекта:

git clone https://github.com/tensorflow/models.git

Когда Git извлекает репозиторий в новую папку с именемmodels, вы увидите следующий результат:

OutputCloning into 'models'...
remote: Counting objects: 8785, done.
remote: Total 8785 (delta 0), reused 0 (delta 0), pack-reused 8785
Receiving objects: 100% (8785/8785), 203.16 MiB | 24.16 MiB/s, done.
Resolving deltas: 100% (4942/4942), done.
Checking connectivity... done.

Перейдите в каталогmodels/tutorials/image/imagenet:

cd models/tutorials/image/imagenet

Этот каталог содержит файлclassify_image.py, который использует TensorFlow для распознавания изображений. Эта программа загружает обученную модель изtensorflow.org при первом запуске. Для загрузки этой модели требуется 200 МБ свободного места на диске.

В этом примере мы классифицируемpre-supplied image of a Panda. Выполните эту команду для запуска программы классификатора изображений:

python classify_image.py

Вы увидите вывод, похожий на этот:

Outputgiant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

Вы классифицировали свое первое изображение, используя возможности распознавания изображений TensorFlow.

Если вы хотите использовать другое изображение, вы можете сделать это, добавив аргумент-- image_file в свою командуpython3 classify_image.py. В качестве аргумента вы должны указать абсолютный путь к файлу изображения.

Заключение

Вы установили TensorFlow в виртуальной среде Python и подтвердили, что TensorFlow работает, запустив пару примеров. Теперь у вас есть инструменты, которые позволяют вам исследовать дополнительные темы, включаяConvolutional Neural Networks иWord Embeddings.

programmer’s guide от TensorFlow - отличный ресурс и справочник по разработке TensorFlow. Вы также можете изучитьKaggle, конкурентную среду для практического применения концепций машинного обучения, которая противопоставит вас другим энтузиастам машинного обучения, науки о данных и статистики. У них есть отличныеwiki, где вы можете увидеть и поделиться решениями, некоторые из которых являются передовыми методами статистического и машинного обучения.

Related