Я пытаюсь выполнить двоичную классификационную проблему с Keras, используя метод ImageDataGenerator.flow_from_directory
для генерации пакетов. Тем не менее, мои классы очень несбалансированы, например, около 8x или 9x больше в одном классе, чем другие, заставляя модель застревать, предсказывая один и тот же класс вывода для каждого примера. Есть ли способ установить flow_from_directory
либо перевыбором из моего небольшого класса, либо недопустимым из моего большого класса в каждую эпоху? Пока что я только что создал несколько копий каждого изображения в моем меньшем классе, но я бы хотел иметь немного большую гибкость.keras flow_from_directory over или undersample класс
ответ
С текущей версией Keras - невозможно сбалансировать ваш набор данных, используя только встроенные методы Keras. flow_from_directory
просто строит список всех файлов и их классов, перетасовывая его (если нужно), а затем он итерации по нему.
Но вы могли бы сделать другой трюк - на сочинительство свой собственный генератор, который позволит сделать балансировку внутри python
:
def balanced_flow_from_directory(flow_from_directory, options):
for x, y in flow_from_directory:
yield custom_balance(x, y, options)
Здесь custom_balance
должна быть функция, которая дана партия (x, y)
балансирует ее и возвращая сбалансированная партия (x', y')
. Для большинства приложений размер партии не обязательно должен быть одним и тем же, но есть некоторые странные варианты использования (например, stateful RNN), где размер партии должен иметь фиксированный размер).
Вы также можете подсчитать количество файлов в каждом классе и нормализовать class_weights
files_per_class = []
for folder in os.listdir(input_foldr):
if not os.path.isfile(folder):
files_per_class.append(len(os.listdir(input_foldr + '/' + folder)))
total_files = sum(files_per_class)
class_weights = {}
for i in xrange(len(files_per_class)):
class_weights[i] = 1 - (float(files_per_class[i])/total_files)
print (class_weights)
...
...
...
model.fit_generator(... ,class_weight=class_weights)
пожалуйста, добавьте пример кода и больше объяснений –
. Измените свой ответ и добавьте этот код –
- 1. В каком порядке функция «flow_from_directory» в keras берет образцы?
- 2. Как получить имя файла изображения с помощью keras flow_from_directory shuffled method?
- 3. Использование Keras ImageDataGenerator в регрессионной модели
- 4. Изменение размеров изображений в методах потока Keras ImageDataGenerator
- 5. keras
- 6. Поезд мульти-класс изображения классификатор в Keras
- 7. Keras ImageDataGenerator set mean и std
- 8. Получить метки классов из функциональной модели Keras
- 9. fortran test over over over
- 10. keras: выпуск с использованием ImageDataGenerator и KFold для fit_generator
- 11. SNMP over DTLS или SNMPv3
- 12. Cardlib Card over over
- 13. View over over ViewControllers
- 14. Ошибка BigQuery: «OVER» «OVER» «
- 15. Несоответствие размера Keras с ImageDataGenerator
- 16. Keras + IndexError
- 17. plink Password Over and Over
- 18. canvas arc y-over over
- 19. Дискретные веса и активации в тензорном потоке или Keras
- 20. Ошибка Keras LSTM
- 21. modal-dialog или div overlay over frameset?
- 22. Преимущества pdo over mysql_ * или mysqli_ *
- 23. Gmaps mousemove over Circle, Polygon или Rectangle
- 24. Trillian, digsby или Pidgin over Lan?
- 25. Keras: как сделать слои Keras, подключенные к слою слияния
- 26. Keras Custom Scaling Layer
- 27. Bridge NSB over WCF
- 28. Keras and cross validation
- 29. load_weights Keras Ошибка модели
- 30. Keras - получение ярлыков в виде строк из структуры каталогов
спасибо это, кажется, примерно то, что мне нужно было – George
Может кто-то создать полностью рабочий сценарий, основанный на этом, чтобы разработать? Мне нужен более конкретный пример custom_balance и т. Д. – mikal94305