【问题标题】:why is my training output printing irregularly?为什么我的训练输出打印不规律?
【发布时间】:2020-02-11 00:36:45
【问题描述】:

我正在使用以下代码训练我的 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,
    )

这些是输出:

准确性还可以,但为什么 epoch 1/20 会重复多次?

【问题讨论】:

    标签: python-3.x tensorflow conv-neural-network


    【解决方案1】:

    您每个时期的步数管理不善。您也尝试验证两次..

    尝试不使用floatint

    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_samplesval_data_gen.n = total_validation_samples 相同

    或者,只需将 steps_per_epochvalidation_steps 注释掉,模型就会将生成器长度作为训练步骤。

    咨询:https://keras.io/models/model/#fit_generator

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 2020-12-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      相关资源
      最近更新 更多