Введение
TensorFlow это программное обеспечение машинного обучения с открытым исходным кодом, построенное Google для обучения нейронных сетей. Нейронные сети TensorFlow выражены в виде сохраняющих состояние графов потоков данных. Каждый узел в графе представляет операции, выполняемые с помощью нейронных сетей на многомерных массивах. Эти многомерные массивы обычно известны как «тензоры», отсюда и название TensorFlow.
TensorFlow является глубоким изучением системного программного обеспечения. TensorFlow хорошо работает для поиска информации, как показан в Google в том, как построен рейтинг поиск в их машинном обучении системы искусственного интеллекта, RankBrain. TensorFlow может выполнять распознавание образов, как показано в Google, Inception, а также звукового распознавания человеческого языка. Это также полезно в решении других проблем, не характерных для машинного обучения, таких как дифференциальные уравнения в частных.
Архитектура TensorFlow позволяет развертываться на нескольких процессорах или графических процессоров в пределах рабочего стола, сервера или мобильного устройства. Есть также расширения для интеграции с CUDA, параллельные вычисления платформой от Nvidia. Это дает пользователям, которые развертывают прямой доступ к GPU к множеству виртуальных команд и других элементов графического процессора, которые необходимы для параллельных вычислительных задач.
В этой статье, мы установим TensorFlow версии «CPU support only». Эта установка идеально подходит для тех, кто хочет установить и использовать TensorFlow, но которые не имеют видеокарту Nvidia или не нужно запускать критически важных приложений.
Вы можете установить TensorFlow несколькими способами. Каждый метод имеет различные варианты использования и среду разработки:
- Python и Virtualenv: При таком подходе, вы установите TensorFlow и все пакеты, необходимые для использования TensorFlow в виртуальной среде Python. Это изолирует TensorFlow environemnt от других программ Python на той же машине.
- Native pip: В этом методе вы устанавливаете TensorFlow в вашей системе во всем мире. Это рекомендуется для людей, которые хотят сделать TensorFlow доступным для всех на многопроцессорной системе пользователя. Этот метод установки не изолирует TensorFlow в замкнутой системах среды разработки и может создавать помехи другой установки Python или библиотеки.
- Docker: Docker является средой выполнения контейнера и полностью изолирует его содержимое из ранее существовавших пакетов в вашей системе. В этом методе используется контейнер Docker, который содержит TensorFlow и все его зависимости. Этот метод идеально подходит для включения TensorFlow в большую архитектуру приложения которые используют Docker. Тем не менее, размер изображения Docker будет довольно большим.
В этой статье вы будете устанавливать TensorFlow в виртуальной среде Python с virtualenv. Этот подход изолирует установку TensorFlow и работает быстро. После завершения установки, вы проверите установку, запустив короткую программу TensorFlow, а затем использовать TensorFlow для распознавания изображений.
Предпосылки
Перед тем, как начать этот урок, вам необходимо следующее:
- Один сервера Ubuntu 16.04, по крайней мере, 1 Гб оперативной памяти, следуя руководству по первоначальной настройке сервера Ubuntu 16.04, включая некорневого sudo пользователя и брандмауэр. Вам понадобится по крайней мере, 1 Гб оперативной памяти, чтобы успешно выполнить последний пример в этом учебнике.
- Python 3.3 или выше и установленный virtualenv. Следуйте гиду как установить Python 3 на Ubuntu 16.04 для настройки Python и virtualenv.
- Установленный Git, выполненный по руководству: как установить Git на Ubuntu 16.04. Вы будете использовать его, чтобы загрузить хранилище примеров.
Шаг 1 – Установка TensorFlow
В этом шаге мы создадим виртуальную среду и установим TensorFlow.
Во- первых, создайте каталог проекта под названием tf-demo:
mkdir ~/tf-demomkdir ~/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 выведет:
Collecting 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.
Шаг 2 – Проверка установки
Чтобы проверить установку TensorFlow, мы собираемся запустить простую программу в TensorFlow как не суперпользователь. Мы будем использовать типичный пример новичка из «Привет, мир!» как форма проверки. Вместо того, чтобы создавать файл Python, мы создадим эту программу, используя интерактивную консоль Python.
Для того, чтобы написать программу, запустите интерпретатор Python:
python
Вы увидите следующее сообщение в вашем терминале
>>>
Это приглашение для интерпретатора Python, и он указывает на то, что он готов для вас, чтобы начать вводить некоторые операторы Python.
Во- первых, введите следующую строку, чтобы импортировать пакет TensorFlow и сделать его доступным в качестве локальной переменной tf. Нажмите ENTER после ввода в строке кода:
import tensorflow as tf
Затем добавьте следующую строку кода, чтобы установить сообщение «Привет, мир!»:
hello = tf.constant("Привет, мир")
Затем создайте новый сеанс TensorFlow и присвойте его переменное sess:
sess = tf.Session()
2017-12-08 2343:36.346946: 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-12-08 2343:36.347157: 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-12-08 2343:36.347281: 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-12-08 2343:36.347403: 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-12-08 2343:36.347526: 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. Если вы видите это, вы можете спокойно игнорировать его и продолжать.
Наконец, введите следующую строку кода, чтобы распечатать результат запуска сеанса hello в TensorFlow, который вы создали в предыдущих строках кода:
print(sess.run(hello))
Вы увидите этот вывод в консоли:
Привет, мир!
Это указывает на то, что все работает, и что вы можете начать использовать TensorFlow, чтобы сделать что-то более интересное.
Выход из интерактивной консоли Python, нажав CTRL+D.
Теперь давайте использовать изображения распознавания API TensorFlow, чтобы больше познакомится с TensorFlow.
Шаг 3 – Использование TensorFlow для распознавания изображений
Теперь, когда установлено TensorFlow и вы проверили его, выполните простую программу, посмотрим на возможности распознавания образов в TensorFlow.
Для классификации изображения необходимо обучить модель. Тогда вам нужно написать код, чтобы использовать модель.
TensorFlow предоставляет репозиторий моделей и примеров, в том числе код и обученние модели для классификации изображений.
Используйте Git для клонирования репозитория моделей TensorFlow из GitHub в каталоге проекта:
git clone https://github.com/tensorflow/models.git
Вы увидите следующий вывод, как Git проверяет репозиторий в новой папке под названием models:
Cloning 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 Мб свободного пространства на диске.
В этом примере мы будем классифицировать поставляемый образ Panda . Выполните эту команду, чтобы запустить программу изображения классификаторов:
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 работает, запустив пару примеров. Теперь Вы обладаете инструментами, которые делают возможным для вас изучить дополнительные темы, включая Convolutional Neural Networks и Word Embeddings.
TensorFlow в руководстве программиста является большим ресурсом и справочником для развития TensorFlow. Вы также можете исследовать Kaggle, конкурентную среду для практического применения концепций обучения машины, которые питают вас против другjuj машинного обучения, данных науки и статистики энтузиастов. Они имеют отличную wiki, где вы можете видеть и обмениваться решениями, некоторые из которых находятся на переднем крае статистических и машинных методов обучения.