Python

Ищете краткое руководство по обучению классификатора пользовательских изображений? С помощью Inception API от Google Brain с этой задачей можно справиться быстрее, чем выпить чашку кофе.

В этом руководстве мы рассмотрим создание критических параметров (bottlenecks) для модели Inception. Критические параметры — это пользовательские слои над предварительно обученной моделью с меньшим количеством нейронов, чем в слоях под ними.

Обучим Inception классификации и распознаванию четырех супер героев (Spider-Man, Superman, Batman и Wonder Woman).

Приступим!

ТРЕБОВАНИЯ:

1) Python (>> v3.0)

2) Tensorflow (в этом руководстве используется v1.7)

Для скачивания используйте следующую команду:

pip install tensorflow

Обновить до версии 1.7v можно с помощью:

pip install --upgrade"tensorflow==1.7.*"

3) Git (установите “GIT” в системе, поскольку в этом руководстве понадобится Git bash)

4) Изображения (понадобится много изображений, поскольку большее количество увеличивает точность)

Для этого можно использовать расширение Chrome (Fatkun batch).

5) А также репозиторий со всеми необходимыми сценариями.

Для получения результата выполним следующие шаги:

1. Скачайте репозиторий по ссылке.

Теперь создайте папки по категориям изображений и поместите их в папку (tf_files).

· Создайте папку “Super’’ в “tf_files’’

· Затем поместите отмеченную папку с изображениями в папку “super”.

1) C: >> tensorflow-for-poets-2 >> tf_files

C: >> tensorflow-for-poets-2 >> tf_files

2)

1) C: >> tensorflow-for-poets-2 >> tf_files >> Super

Изображения находятся в отмеченной папке. Аналогичным образом можно разместить изображения любой категории и отметить их для обучения критического параметра.

папка с набором изображений

2. Получение доступа к каталогу проекта в GIT Bash

Теперь откройте “GIT BASH ” в папке “tensorflow-for-poets-2” или на рабочем столе, а затем перейдите к папке.

переход к папке в git bash

3. Получение доступа к retrain.py

Мы находимся в папке (C:/ tensorflow-for-poets-2)

Теперь перейдем к переобучению модели inception с помощью сценария “retrain.py”.

· Настроим MobileNet.

(MobileNet — это небольшая эффективная сверточная нейронная сеть).

Настроить можно двумя способами:

· Ввод разрешения изображений: 128,160,192 или 224px (Использование изображений высокого разрешения увеличивает продолжительность обработки, однако приводит к лучшей точности классификации);

· Условный размер модели в качестве доли наибольшей MobileNet: 1.0, 0.75, 0.50 или 0.25. Используем 224px и 0.5.

IMAGE_SIZE=224

ARCHITECTURE="mobilenet_0.50_${IMAGE_SIZE}"

4. Дополнительный шаг (для тех, кто заинтересован в полном изучении реализации процесса и хочет увидеть графики и визуализацию).

Запустите tensorboard в фоновом режиме

tensorboard --logdir tf_files/training_summaries &

(TensorBoard — это инструмент для контроля и проверки в tensorflow)

5. Теперь запускаем сценарий retrain.py

python -m scripts.retrain \
--bottleneck_dir=tf_files/bottlenecks \
--how_many_training_steps=500 \
--model_dir=tf_files/models/ \
--summaries_dir=tf_files/training_summaries/"${ARCHITECTURE}" \
--output_graph=tf_files/retrained_graph.pb \sim
--output_labels=tf_files/retrained_labels.txt \
--architecture="${ARCHITECTURE}" \
--image_dir=tf_files/super

· Путь для создания критических параметров определен в tf_file/bottleneck.

· Следующей строкой определяем необходимое количество шагов. При удалении этой строки значение по умолчанию составит 4000 обучающих шагов.

· Аналогичным образом предоставляем путь для создания retrain_graph.pb, retrained_labels.txt.

· И последней строкой указываем каталог изображений в качестве папки “super”, находящейся внутри tf_files.

команды в git bash для получения доступа и запуска retrain.py

· При запуске этого блока начинается переобучение.

несколько эпох для получения точности критических параметров

Это займет некоторое время. При остановке на каком-либо изображении удалите это изображение и запустите вышеуказанный код снова.

В результате получаем следующее:

для 500 эпох (training_steps) точность составляет 81,0%

Здесь использовалось 500 тренировочных шагов, которые можно увеличить для повышения точности.

При количестве 500 шагов точность составляет 87,92%.

6. Тестирование

Финальный шаг —  тестирование модели с помощью случайных изображений, подходящих под данные категории.

Для тестирования используем “label.py script”.

Поместите изображение для тестирования в папке tf_files.

Убедитесь, что установили правильное название и расширение изображения.

Например: flower.jpg, superman.jpg

python -m scripts.label_image \
--graph=tf_files/retrained_graph.pb  \
--image=tf_files/{ image_name. (extension) }

· Несколько результатов:

Результаты для изображения SPIDER-Man

Получаем неплохие результаты. Поскольку диаграммы и графики для обучающего процесса уже созданы, можно просмотреть tensorboard, работающий на localhost порте 8080.

Визуализация операции с помощью Tensorboard при получении доступа к графику, созданному во время обучения критических параметров.

· График точности

Вот и все 😊.


Перевод статьи ANKIT BHADORIYA: Training Google Inception for Custom Images in Less Than 5 Minutes

Ещё больше статей по машинному обучению