CNN и размер партии

#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 ?