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

Вступление

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

TensorFlow - это программная системаdeep learning. Он хорошо работает для поиска информации, как показал 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 18.04 с как минимум 1 ГБ ОЗУ, настроенный поthe Ubuntu 18.04 initial server setup guide, включая пользователя sudo без полномочий root и брандмауэр. Вам понадобится как минимум 1 ГБ ОЗУ для успешного выполнения последнего примера в этом руководстве.

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

  • Git установлен, что вы можете сделать, выполнивHow To Install Git on Ubuntu 18.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:

pip install --upgrade tensorflow

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

Output...
Successfully installed absl-py-0.7.1 astor-0.7.1 gast-0.2.2 grpcio-1.19.0 h5py-2.9.0 keras-applications-1.0.7 keras-preprocessing-1.0.9 markdown-3.0.1 mock-2.0.0 numpy-1.16.2 pbr-5.1.3 protobuf-3.7.0 setuptools-40.8.0 tensorboard-1.13.1 tensorflow-1.13.1 tensorflow-estimator-1.13.0 termcolor-1.1.0 werkzeug-0.15.0 wheel-0.33.1
...

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: в зависимости от вашей среды вы можете увидеть следующий вывод:

Output2019-03-20 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.
2019-03-20 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.
2019-03-20 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.
2019-03-20 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.
2019-03-20 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, который вы создали в предыдущих строках кода:

В Python 3sess.run() вернет байтовую строку, которая будет отображаться какb'Hello, world!', если вы запустите толькоprint(sess.run(hello)). Чтобы вернутьHello, world! в виде строки, давайте добавим методdecode().

print(sess.run(hello).decode())

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

OutputHello, world!

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

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

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

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

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

Для того, чтобы классифицировать изображение, вам нужно тренировать модель. Затем вам нужно написать некоторый код для использования модели. Чтобы узнать больше о концепциях машинного обучения, подумайте о прочтении «https://www.digitalocean.com/community/tutorials/an-introduction-to-machine-learning[A Введение в машинное обучение]».

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

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

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

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

OutputCloning into 'models'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 24851 (delta 17), reused 12 (delta 6), pack-reused 24819
Receiving objects: 100% (24851/24851), 507.78 MiB | 32.73 MiB/s, done.
Resolving deltas: 100% (14629/14629), done.
Checking out files: 100% (2858/2858), 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