почему мои результаты тренировок печатаются нерегулярно? - PullRequest
0 голосов
/ 11 февраля 2020

Я тренирую свой CNN, используя следующий код:

history = model.fit_generator(
        train_data_gen,
        steps_per_epoch=int(np.ceil(train_data_gen.n / float(batch_size))),
        epochs=num_epochs,
        validation_data=val_data_gen,
        validation_steps=int(np.ceil(val_data_gen.n / float(batch_size))),
        verbose=1,
    )

, и это вывод:

training output

Точность в порядке, но почему эпоха 1/20 повторяется несколько раз?

1 Ответ

0 голосов
/ 11 февраля 2020

Ваши шаги за эпоху плохо управляются. Вы пытаетесь проверить дважды тоже ..

Попробуйте без float и int:

history = model.fit_generator(
        train_data_gen,
        steps_per_epoch=np.ceil(train_data_gen.n / batch_size),
        epochs=num_epochs,
        validation_data=val_data_gen,
        validation_steps=np.ceil(val_data_gen.n / batch_size),
        verbose=1,
    )

распечатать значения размера генератора, steps_per_epoch должно отражать число шагов обучения (обычно определяется функцией генератора)

И убедитесь, что train_data_gen.n = total_training_samples и то же самое для val_data_gen.n = total_validation_samples

ИЛИ, просто закомментируйте steps_per_epoch и validation_steps, и модель будет взять длину генератора в качестве шага обучения.

Консультироваться: https://keras.io/models/model/#fit_generator

...