这里的对象检测 API相当新,使用 tf-gpu==1.15 进行训练,使用 2.2.0 进行评估以及 python 3.7。
我能够利用数据增强以及调整 ssd_mobilenet_v1.config 文件中学习率的衰减,但如果我确信损失不会,我不确定如何实现模型停止训练的方法无论它训练多少步,都低于某个值。
我如何或在哪里配置/实施提前停止标准?
这里的对象检测 API相当新,使用 tf-gpu==1.15 进行训练,使用 2.2.0 进行评估以及 python 3.7。
我能够利用数据增强以及调整 ssd_mobilenet_v1.config 文件中学习率的衰减,但如果我确信损失不会,我不确定如何实现模型停止训练的方法无论它训练多少步,都低于某个值。
我如何或在哪里配置/实施提前停止标准?
您可以使用EarlyStopping
来自 tensorflow 的回调。请参阅此处的tensorflow 文档。
使用 - 创建回调 -
from tensorflow.keras.callbacks import EarlyStopping
es = EarlyStopping(
monitor='val_loss', min_delta=0, patience=3, verbose=0, mode='auto',
baseline=None, restore_best_weights=False
)
monitor
-如果您没有验证数据并且如果训练损失在连续 3 个时期停止减少,则将monitor
参数更改为要停止训练。loss
此外,accuracy
如果您希望根据准确性而不是loss
.patience
- 如果损失没有减少或准确性没有提高,则在停止训练之前要等待的 epoch 数fit
然后在训练时将其传递给函数-
history = model.fit(X, y, epochs=10, callbacks=[es])
网上有很多例子,你可以看看!