当我将整个数据集加载到内存中并使用以下代码在Keras中训练网络时:
model.fit(X, y, nb_epoch=40, batch_size=32, validation_split=0.2, verbose=1)
这会在每个时期生成一个进度条,其中包含ETA,准确度,丢失等指标
当我批量训练网络时,我正在使用以下代码
for e in range(40):
for X, y in data.next_batch():
model.fit(X, y, nb_epoch=1, batch_size=data.batch_size, verbose=1)
这将为每个批次而不是每个时期生成进度条 . 是否可以在批量培训期间为每个时期生成进度条?
2 回答
1 .
在上面对
verbose=2
的更改中,正如文档中提到的那样:“verbose:0表示没有记录到stdout,1表示进度条记录,2 for one log line per epoch
. ”它会将您的输出显示为:
2 .
如果要显示完成时期的进度条,请保留
verbose=0
(关闭记录到stdout)并按以下方式实现:输出如下:
[================================================= ===========] 100%,时代10
3 .
如果您想在每n批次后显示损失,您可以使用:
虽然,我以前从未尝试过 . 上面的例子来自这个keras github问题:Show Loss Every N Batches #2850
你也可以在这里关注
NBatchLogger
的演示:4 .
您也可以使用
progbar
进行处理,但它会批量打印进度你可以设置verbose = 0并设置回调,它将在每个拟合结束时更新进度,
https://keras.io/callbacks/#example-model-checkpoints
或设置回调https://keras.io/callbacks/#remotemonitor