На первый взгляд дублированное обучение для каждой эпохи в Керасе - PullRequest
0 голосов
/ 04 ноября 2019

Я тренирую модель CNN с двоичной сигмоидальной классификацией в пакетах ImageDataGenerator с помощью fit_generator () в Google Colab с использованием Tensorflow Keras. По какой-то причине модель, кажется, тренируется до 1 шага до завершения, затем она тренируется снова. Это происходит в каждую эпоху.

https://i.stack.imgur.com/nGBBs.png

В чем может быть причина? Это напрасная трата времени? Должно ли это быть исправлено?

Спасибо

Редактировать: модель является последовательной.

Генератор обучающих данных:

from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(
    rescale = 1./255,
    rotation_range = 40,
    width_shift_range = 0.2,
    height_shift_range = 0.2,
    shear_range = 0.1,
    zoom_range = 0.2,
    fill_mode = 'nearest',
    horizontal_flip = True,
    vertical_flip = True,
    validation_split=0.2
)

data_dir = '/tmp/sorted_images'

train_gen = train_datagen.flow_from_directory(
    data_dir,
    batch_size=128,
    target_size = (96,96),
    color_mode="grayscale",
    class_mode = 'binary',
    shuffle=True,
    subset='training'
)

Генератор проверочных данных:

from keras_preprocessing.image import ImageDataGenerator

valid_datagen = ImageDataGenerator(
    rescale = 1./255,
    validation_split=0.2
)

valid_gen = valid_datagen.flow_from_directory(
    data_dir,
    batch_size=128,
    target_size = (96,96),
    color_mode="grayscale",
    class_mode = 'binary',
    shuffle=True,
    subset='validation'
)
model.compile(loss='binary_crossentropy', optimizer=adam, metrics=['accuracy', tf.keras.metrics.TruePositives(name='truepos'), tf.keras.metrics.FalseNegatives(name='falseneg'), tf.keras.metrics.FalsePositives(name='falsepos'), tf.keras.metrics.TrueNegatives(name='trueneg')])
history = model.fit_generator(train_gen, epochs=15, verbose = 1, callbacks=cb_list, validation_data = valid_gen, validation_freq = 5)
...