Ищете краткое руководство по обучению классификатора пользовательских изображений? С помощью 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
2)
Изображения находятся в отмеченной папке. Аналогичным образом можно разместить изображения любой категории и отметить их для обучения критического параметра.
2. Получение доступа к каталогу проекта в GIT Bash
Теперь откройте “GIT BASH ” в папке “tensorflow-for-poets-2” или на рабочем столе, а затем перейдите к папке.
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.
· При запуске этого блока начинается переобучение.
Это займет некоторое время. При остановке на каком-либо изображении удалите это изображение и запустите вышеуказанный код снова.
В результате получаем следующее:
Здесь использовалось 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) }
· Несколько результатов:
Получаем неплохие результаты. Поскольку диаграммы и графики для обучающего процесса уже созданы, можно просмотреть tensorboard, работающий на localhost порте 8080.
· График точности
Вот и все ?.
Перевод статьи ANKIT BHADORIYA: Training Google Inception for Custom Images in Less Than 5 Minutes