#conv-neural-network #batch-processing
#conv-нейронная сеть #пакетная обработка
Вопрос:
#Здравствуйте, для настроенного CNN, который я обучаю на наборе данных изображений с помощью метода fit_generator, я не понимаю, почему он не работает при низком размере пакета и работает, когда я увеличиваю параметр batch _size # ? Может кто-нибудь объяснить мне, что не так?
nb_train_samples = 700
nb_validation_samples = 70
epochs = 50
batch_size = 5 ###
циклы CNN не работают, когда размер пакета слишком мал (например: 5
Комментарии:
1. Каков результат
len(training_set)
?2. выходной len(training_set) равен 22
Ответ №1:
TL; DR: Простыми словами, ваш steps_per_epoch
и validation_steps
не может быть больше, чем len(train_generator)
если он уже загружен. (Предполагая, что это не повторяется.)
Генератор уже загружен. Вы пытаетесь пройти больше шагов, чем len(training_set)
при nb_train_samples // batch_size
котором равно 140.
Вам не нужно устанавливать steps_per_epoch
при использовании генераторов, если вы не хотите иметь меньше шагов.
Пример:
train_generator = train_datagen.flow_from_directory(
...
batch_size=20)
train_generator.samples # returns 2000
Таким образом, в этом случае len(train_generator)
возвращается 100. Если вы хотите использовать меньше точек данных, вы можете указать steps_per_epoch
, например:
steps_per_epoch=train_generator.samples // 32 <-- equals to 62
Комментарии:
1. Спасибо за ваш отзыв
2. Пожалуйста. Если вас устраивает ответ, вы можете принять его, поставив галочку под кнопками голосования. Если что-то непонятно, пожалуйста, дайте мне знать, поэтому я могу отредактировать ответ.
3. Спасибо. У меня последний вопрос. Для подгонки модели CNN, как мы определяем количество выборок поездов и количество выборок проверки. В этом личном упражнении у меня есть 700 образцов поездов (2 класса) и 70 образцов проверки. Рекомендуется ли просто использовать количество выборок поездов = 700 и количество выборок проверки = 70? Спасибо
4. Если вы имеете в виду steps_per_epoch и validation_steps, пусть
fit()
метод определяет их. Количество шагов вычисляется следующим образом: total_samples // batch_size .5. хорошо, спасибо, но как нам определить значение total_sample, используемое для: total_samples // batch_size ?