KeyError:训练模型时出现“ val_loss”

我正在使用keras训练模型,并且在fit_generator函数的回调中遇到错误。我总是跑到纪元3rd并收到此错误

annotation_path = 'train2.txt'
    log_dir = 'logs/000/'
    classes_path = 'model_data/deplao_classes.txt'
    anchors_path = 'model_data/yolo_anchors.txt'
    class_names = get_classes(classes_path)
    num_classes = len(class_names)
    anchors = get_anchors(anchors_path)

    input_shape = (416,416) # multiple of 32, hw

    is_tiny_version = len(anchors)==6 # default setting
    if is_tiny_version:
        model = create_tiny_model(input_shape, anchors, num_classes,
            freeze_body=2, weights_path='model_data/tiny_yolo_weights.h5')
    else:
        model = create_model(input_shape, anchors, num_classes,
            freeze_body=2, weights_path='model_data/yolo_weights.h5') # make sure you know what you freeze

    logging = TensorBoard(log_dir=log_dir)
    checkpoint = ModelCheckpoint(log_dir + 'ep{epoch:03d}-loss{loss:.3f}-val_loss{val_loss:.3f}.h5',
        monitor='val_loss', save_weights_only=True, save_best_only=True, period=3)

    reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=3, verbose=1)
    early_stopping = EarlyStopping(monitor='val_loss', min_delta=0, patience=10, verbose=1)


[error]
Traceback (most recent call last):
  File "train.py", line 194, in <module>
    _main()
  File "train.py", line 69, in _main
    callbacks=[logging, checkpoint])
  File "C:\Users\ilove\AppData\Roaming\Python\Python37\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\ilove\AppData\Roaming\Python\Python37\lib\site-packages\keras\engine\training.py", line 1418, in fit_generator
    initial_epoch=initial_epoch)
  File "C:\Users\ilove\AppData\Roaming\Python\Python37\lib\site-packages\keras\engine\training_generator.py", line 251, in fit_generator
    callbacks.on_epoch_end(epoch, epoch_logs)
  File "C:\Users\ilove\AppData\Roaming\Python\Python37\lib\site-packages\keras\callbacks.py", line 79, in on_epoch_end
    callback.on_epoch_end(epoch, logs)
  File "C:\Users\ilove\AppData\Roaming\Python\Python37\lib\site-packages\keras\callbacks.py", line 429, in on_epoch_end
    filepath = self.filepath.format(epoch=epoch + 1, **logs)
KeyError: 'val_loss'

谁能找出问题来帮助我?

在此先感谢您的帮助。

佩德罗·马克斯

此回调在迭代3的末尾运行。

    checkpoint = ModelCheckpoint(log_dir + 'ep{epoch:03d}-loss{loss:.3f}-val_loss{val_loss:.3f}.h5',
        monitor='val_loss', save_weights_only=True, save_best_only=True, period=3)

错误消息声称logs执行时变量中没有val_loss

filepath = self.filepath.format(epoch=epoch + 1, **logs)

如果在没有validation_data的情况下调用fit,则会发生这种情况。

我将从简化模型检查点的路径名开始。在名称中包含纪元可能就足够了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Keras提前停止回调错误,val_loss指标不可用

为什么val_loss和val_accuracy不显示在时代

如何在keras中记录val_loss和批次损失

损失,val_loss,acc和val_acc在整个时期都不会更新

当使用与验证数据相同的训练数据时,为什么val_loss与训练损失不同?

尝试从训练模型中获得val_loss

CNN模型的val_loss下降得很好,但val_loss变化很多

Keras多重输出中val_loss的计算

如何在keras中修改ModelCheckPoint以监视val_acc和val_loss并相应地保存最佳模型?

手动计算的验证损失与使用正则化时报告的val_loss不同

训练损失可用,但val_loss = nan

val_loss减半,但val_acc保持不变

训练时监控val_loss

具有多个输出的Tensorflow val_loss定义

keras日志中缺少val_loss,但在时代结束时正确打印

为什么当val_loss从一开始就增加时,我的val_accuracy停滞在0.0000e + 00?

如何在多元模型中获得平均val_loss和val_accuracy?

使用fit_generator的训练模型不显示val_loss和val_acc并在第一个时期中断

训练时Keras模型给出:损失:0.00,损失val:0.00?

使用 TFRecord 在 Keras 中的 Val_loss

Keras:监控 val_loss 以提前停止 - 误报问题

Keras:val_loss 增加并且评估损失太高

从已保存的 .h5 cnn 保存模型加载 val_acc 和 val_loss

为什么我的 val_loss 下降但我的 val_accuracy 停滞不前

Val_loss & Loss 是相同的数量(tensorflow)

为什么 val_loss 超过一百?

關於PyTorch中驗證過程的一個問題:val_loss低於train_loss

當我在 model.fit() 的參數中已經有了 validation_data 時,沒有 val_loss 和 val_accuracy 鍵

在运行深度学习模型进行测试分类时增加 val-loss 并降低 val-accuracy