TensorFlow — это библиотека нейронных сетей Google. Учитывая, что машинное обучение — самая горячая вещь в настоящее время, неудивительно, что Google является одним из лидеров в этой новой технологии.
В этой статье вы узнаете, как установить TensorFlow на Raspberry Pi и выполнить простую классификацию изображений в предварительно обученной нейронной сети.
Начиная
Чтобы начать распознавание изображений, вам понадобится Raspberry Pi (подойдет любая модель) и SD-карта с операционной системой Raspbian Stretch (9.0+) (если вы новичок в Raspberry Pi, воспользуйтесь нашим руководством по установке ).
Загрузите Pi и откройте окно терминала. Убедитесь, что ваш Pi обновлен, и проверьте версию Python.
sudo apt-get update python --version python3 --version
Для этого урока вы можете использовать как Python 2.7, так и Python 3.4+. Этот пример для Python 3. Для Python 2.7 замените Python3 на Python , а pip3 на pip в этом учебном пособии.
Pip — менеджер пакетов для Python, обычно устанавливаемый в качестве стандартного в дистрибутивах Linux.
Если вы обнаружите, что у вас его нет, следуйте инструкциям по установке для Linux в этой статье, чтобы установить его.
Установка TensorFlow
Установка TensorFlow раньше была довольно неприятным процессом, но недавнее обновление делает его невероятно простым. Несмотря на то, что вы можете следовать этому руководству без каких-либо предварительных знаний, возможно, стоит ознакомиться с основами машинного обучения, прежде чем его опробовать.
Перед установкой TensorFlow установите библиотеку Atlas .
sudo apt install libatlas-base-dev
После этого установите TensorFlow через pip3.
pip3 install --user tensorflow
Это установит TensorFlow для вошедшего в систему пользователя. Если вы предпочитаете использовать виртуальную среду использовать виртуальную среду , измените ваш код здесь, чтобы отразить это.
Тестирование TensorFlow
После установки вы можете проверить, работает ли он с TensorFlow-эквивалентом Hello, world!
Из командной строки создайте новый скрипт Python, используя nano или vim (если вы не уверены, какой из них использовать, у них обоих есть преимущества ), и назовите его легко запоминающимся.
sudo nano tftest.py
Введите этот код, предоставленный Google для тестирования TensorFlow:
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello))
Если вы используете nano, выйдите, нажав Ctrl + X, и сохраните файл, набрав Y в ответ на запрос.
Запустите код из терминала:
python3 tftest.py
Вы должны увидеть «Hello, TensorFlow» напечатанным.
Если вы используете Python 3.5, вы получите несколько предупреждений во время выполнения. Официальные руководства TensorFlow признают, что это происходит, и рекомендуют игнорировать это.
Оно работает! Теперь, чтобы сделать что-то интересное с TensorFlow.
Установка классификатора изображений
В терминале создайте каталог для проекта в вашем домашнем каталоге и перейдите в него.
mkdir tf1 cd tf1
TensorFlow имеет git-репозиторий с примерами моделей, которые можно опробовать. Клонируйте репозиторий в новый каталог:
git clone https://github.com/tensorflow/models.git
Вы хотите использовать пример классификации изображений, который можно найти в models / tutorials / image / imagenet . Перейдите к этой папке сейчас:
cd models/tutorials/image/imagenet
Стандартный скрипт классификации изображений работает с предоставленным изображением панды:
Чтобы запустить стандартный классификатор изображений с предоставленным изображением панды, введите:
python3 classify_image.py
Это передает изображение панды в нейронную сеть, которая возвращает догадки относительно того, что изображение имеет значение для его уровня достоверности.
Как показывает выходное изображение, нейронная сеть угадана правильно, с почти 90-процентной достоверностью. Он также подумал, что изображение может содержать заварное яблоко, но он не очень уверен в этом ответе.
Использование пользовательского изображения
Изображение панды доказывает, что TensorFlow работает, но это, возможно, неудивительно, учитывая, что это пример, который предоставляет проект. Для лучшего теста вы можете предоставить свое изображение нейронной сети для классификации.
В этом случае вы увидите, сможет ли нейронная сеть TensorFlow идентифицировать Джорджа.
Знакомьтесь, Джордж. Джордж это динозавр. Чтобы вставить это изображение (доступно в обрезанном виде здесь ) в нейронную сеть, добавьте аргументы при запуске скрипта.
python3 classify_image.py --image_file=/home/pi/george.jpg
Image_file = после имени скрипта позволяет добавлять любое изображение по пути. Давайте посмотрим, как эта нейронная сеть сделала.
Неплохо! Хотя Джордж не является трицератопсом, нейронная сеть классифицировала изображение как динозавра с высокой степенью достоверности по сравнению с другими вариантами.
TensorFlow и Raspberry Pi, готовые к работе
Эта базовая реализация TensorFlow уже имеет потенциал. Это распознавание объектов происходит на Pi, и для его работы не требуется подключение к Интернету. Это означает, что с добавлением модуля камеры Raspberry Pi и батарейного блока , подходящего для Raspberry Pi , весь проект может стать переносимым.
Большинство учебных пособий только царапают поверхность предмета, но это никогда не было правдой, чем в этом случае. Машинное обучение — невероятно плотный предмет.
Один из способов углубить свои знания — это пройти специальный курс. В то же время, получите опыт машинного обучения и Raspberry Pi с этими проектами TensorFlow, которые вы можете попробовать сами.