Равный размер пакета частоты при использовании flow_from_directory в Keras - PullRequest
0 голосов
/ 29 января 2020

Доброе утро, я использую keras для обучения сиамской сети с потерей триплетов и майнингом триплетов в Интернете.

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

Поскольку мой набор данных большой, я не могу полностью загрузить в память и использовать существующую модификацию BalancedGenerator, мне нужно загружать из файлов с помощью flow_from_directory.

Моя первоначальная идея состояла в том, чтобы изменить keras ImageDataGenerator таким образом, чтобы, задав большой размер batch_size (например, 1024), для каждой итерации я мог выбрать сбалансированное подмножество 1024 index_array и обучить сеть.

Мой код работает, но есть большая проблема, on_batch_end вызывается слишком часто, это приводит к неправильному поведению оптимизатора Adam и, очевидно, сильно замедляет обучение.

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

Есть ли способ достичь чего-то подобного, сохранив при этом преимущества keras ImageDataGenerator?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...