Установка TensorFlow в Ubuntu 18.04

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

Читайте также: Введение в машинное обучение

TensorFlow – это система для глубокого обучения. TensorFlow отлично подходит для поиска информации, как демонстрирует RankBrain, система искусственного интеллекта для поискового ранжирования Google. TensorFlow (согласно Inception) может распознавать изображения и записи естественного языка. Эта система также полезна при решении других проблем, не связанных с машинным обучением (например, в решении дифференциальных уравнений).

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

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

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

  1. Python и Virtualenv: этот метод позволяет установить TensorFlow и все связанные пакеты в виртуальную среду Python. Это позволяет изолировать среду TensorFlow от других программ Python, установленных на этой машине.
  2. pip: глобальная установка TensorFlow. Этот метод рекомендуется пользователям, которые хотят получить общедоступную установку TensorFlow в многопользовательской системе. Однако этот метод установки не изолирует TensorFlow и может мешать другим установкам или библиотекам Python.
  3. Docker: это среда контейнеризации, которая позволяет полностью изолировать содержимое контейнера от остальных пакетов системы. TensorFlow и все зависимости устанавливаются в контейнер. Этот метод позволяет внедрить TensorFlow в архитектуру большого приложения, которое уже использует Docker. Однако образ Docker будет довольно большим.

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

Требования

1: Установка TensorFlow

Сейчас нужно создать виртуальную среду и установить в ней TensorFlow .

Для начала нужно создать каталог проекта. Здесь мы условно назовем его tf-demo:

mkdir ~/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 установится. Вы должны получить вывод, который указывает, что установка пакета вместе со всеми зависимостями прошла успешно.

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

2: Проверка установки TensorFlow

Чтобы проверить установку TensorFlow, попробуйте запустить в TensorFlow простую программу в качестве пользователя без прав root. В качестве примера можно использовать простую программу «Hello, world». Вместо того чтобы создавать файл Python, создайте эту программу с помощью интерактивной консоли Python.

Читайте также: Использование интерактивной консоли Python

Запустите интерпретатор Python:

python

В терминале появится:

>>>

Это командная строка интерпретатора Python, она указывает на то, что вы можете начать вводить команды Python.

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

import tensorflow as tf

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

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

Откройте новую сессию TensorFlow и присвойте ее переменной sess:

sess = tf.Session()

Примечание: В зависимости от среды вы можете увидеть такой вывод:

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

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

Чтобы отобразить результат запуска сессии TensorFlow, которую вы создали в предыдущих строках кода, введите следующую строку.

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

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

В консоли появится:

Hello, world!

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

Закройте консоль Python (нажмите CTRL+D или введите quit()).

3: Распознавание изображений с помощью TensorFlow

Теперь проверьте функции распознавания изображений TensorFlow.

Чтобы классифицировать изображение, вам нужно подготовить модель. Затем вам нужно написать код для использования этой модели.

Читайте также: Введение в машинное обучение

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

С помощью Git клонируйте репозиторий models с GitHub в каталог проекта:

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

После того как Git проверит репозиторий, вы увидите такой вывод:

Cloning 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 МБ свободного места на диске.

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

python classify_image.py

Вы увидите такой вывод:

giant 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. Вы также можете изучить Kaggle, среду для практического применения концепций машинного обучения. У этого проекта отличная вики, где вы можете найти нужную информацию и поделиться своими решениями.

Tags: , , , ,