Мой домашний проект по машинному обучению. Часть 5. Исследование эпох и батчей

Мой домашний проект посвящен распознаванию продуктов питания. Больше информации здесь.

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

Он сказал: «На вашем входе закончились данные, что прерывает обучение. Убедитесь, что ваш набор данных или генератор может генерировать по крайней мере шаги_на_эпоху * эпохи партий».

Я посмотрел, что такое эпохи и размер партии. Одна эпоха обучения означает, что алгоритм обучения совершил один проход по обучающему набору данных, где примеры были разделены на случайно выбранные группы «размера партии». Но я только что вспомнил, что одна картинка стоит 1000 слов, поэтому я нарисовал картинку для вас, посмотрите:

steps_per_epoch (или steps) — это количество партий, запускаемых на каждую эпоху обучения. Так, если у нас batch_size = 32, то при наличии 71 изображения мы можем разбить набор данных на 2 партии (=2 шага). 64 изображения будут использованы для обучения, а 7 изображений будут лишними.

Я исключил 7 изображений из моего небольшого набора данных и выполнил команду:

keras_retinanet/bin/train.py csv dataset/annotations3.csv dataset/labels.csv --epochs 50 --steps 2
Войти в полноэкранный режим Выйти из полноэкранного режима

но получил сообщение:

Failed to load the native TensorFlow runtime.
Войти в полноэкранный режим Выйти из полноэкранного режима

Это означает, что я забыл загрузить среду, в которой был установлен Tensorflow. Я выполнил команду:

conda activate mlp
Enter fullscreen mode Выйти из полноэкранного режима

повторил команду train.py и столкнулся с другим сообщением об ошибке:

train.py: error: unrecognized arguments: --epochs 50 --steps 2
Enter fullscreen mode Выход из полноэкранного режима

Прочитав этот вопрос, я понял, что мне нужно изменить команду на следующую:

keras_retinanet/bin/train.py --epochs=50 --steps=2 csv dataset/annotations3.csv dataset/labels.csv
Войти в полноэкранный режим Выйти из полноэкранного режима

После этого Retinanet начал работать и завершил свои вычисления без ошибок:

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

Оцените статью
devanswers.ru
Добавить комментарий