【问题标题】:Progress bar not shown during training, Python训练期间未显示进度条,Python
【发布时间】:2021-06-11 10:16:45
【问题描述】:

我正在尝试为分割任务训练一个 2D Unet。 我执行这行代码:

model.fit(training_generator, epochs = params["nEpoches"],
                    validation_data=validation_generator, verbose = 1, use_multiprocessing = True, workers = 6, callbacks=[callbacks_list,csv_logger])

在哪里

  • training_generator = DataGenerator(x_training, y_train_flat, **params) 的距离,图像和掩码数组作为此类的参数。
  • 纪元 = 2
  • validation_generator = 距离 DataGenerator(x_validation, y_validation_flat, **params),带有验证数据。
  • 回调列表 = checkPoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=False, mode='min', period=1) callbacks_list = checkPoint

使用verbose=1 参数,我想我应该看到一个显示每个时期训练状态的进度条,但我看到的唯一内容是Epoch 1/2,没有任何进度条。所以我不能说训练过程是在继续还是卡在某个地方。

【问题讨论】:

  • 试试verbose=10,但无论如何库中的模型永远不会卡住,它们可能计算时间长,但永远不会卡住。
  • 这可能是因为它不知道它应该在一个 epoch 中执行多少步并因此显示一个进度条。检查您的批量大小并尝试在 model.fit() 中指定 steps_per_epoch

标签: python tensorflow keras progress training-data


【解决方案1】:

根据 Tensorflow 文档,

steps_per_epoch:-

整数或无。之前的步骤总数(样本批次) 宣布一个时代结束并开始下一个时代。什么时候 使用输入张量进行训练,例如 TensorFlow 数据张量, 默认 None 等于数据集中的样本数除以 按批量大小,如果无法确定,则为 1。如果 x 是 tf.data 数据集,并且 'steps_per_epoch' 为 None,epoch 将运行 直到输入数据集用完。当通过一个无限 重复数据集,您必须指定 steps_per_epoch 参数。

validation_steps:-

仅当提供了 validation_data 并且是 tf.data 数据集时才相关。 停止前要绘制的总步数(样本批次) 在每个 epoch 结束时执行验证时。如果 'validation_steps' 为无,验证将一直运行到 validation_data 数据集已用尽。在无限的情况下 重复数据集,它将陷入无限循环。如果 'validation_steps' 被指定并且只有部分数据集将被 消耗,评估将从数据集的开头开始 在每个时代。这确保使用相同的验证样本 每次。

在您的情况下,正如@Kaveh 正确提到的那样,训练进度正在进行中,它不知道一个时期应该有多少步并陷入无限循环。检查您的batch size 并将steps_per_epochvalidation_steps 添加到model.fit(),如下所示将解决您的问题。

model.fit(training_generator, 
    steps_per_epoch = len(training_generator) // training_generator.batch_size,
    epochs = params["nEpoches"],
    validation_data=validation_generator, 
    validation_steps=len(validation_generator) // validation_generator.batch_size,
    verbose = 1, 
    use_multiprocessing = True, workers = 6, callbacks=[callbacks_list,csv_logger])

更多信息可以参考here

【讨论】:

    猜你喜欢
    • 2016-12-31
    • 2017-10-14
    • 2017-11-10
    • 2019-09-24
    • 2017-12-25
    • 1970-01-01
    • 2019-12-14
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多