为了账号安全,请及时绑定邮箱和手机立即绑定

更改 Keras 模型以进行验证步骤

更改 Keras 模型以进行验证步骤

潇湘沐 2021-09-28 13:49:46
我有一个在训练和推理过程中不同的模型。更准确地说,它是一个 SSD(Single Shot Detector),需要在其训练对应层的顶部添加额外的 DetectionOutput 层。在 Caffe 中,可以使用层定义中的“include”参数来打开/关闭层。但是,如果我希望在每个 epoch 之后(在回调中)运行验证,那么在定义和编译模型之后我应该怎么做?我无法在训练期间添加 DetectionOutput,因为它与损失的输入不兼容。我还想避免在回调或自定义指标中的某处创建 DetectionOutput 层,因为它需要合理的超参数,并且我想将模型创建逻辑保留在专用模块中。在以下示例代码模型中,为推理创建了检测输出层。所以评估运行得很好:model, _, _ = build_model(input_shape=(args.input_height, args.input_width, 3),                          n_classes=num_classes,                          mode='inference')model.load_weights(args.model, by_name=True)evaluation = SSDEvaluation(model=model,                           evaluator=PascalDetectionEvaluator(categories),                           data_files=[args.eval_data])metrics = evaluation.evaluate()但是这个回调不能正常工作,因为在训练模型期间没有 DetectionOutput:class SSDTensorboard(Callback):    def __init__(self, evaluator, eval_data):        self.evaluator = evaluator        self.eval_data = eval_data    def on_train_begin(self, logs={}):        self.metrics = []    def on_epoch_end(self, epoch, logs={}):        evaluation = SSDEvaluation(self.model, self.evaluator, self.eval_data)        metrics = evaluation.evaluate()        self.metrics.append(metrics)像往常一样运行训练的正确(pythonic、keratonic 等)方法是什么,但对更改后的模型执行验证步骤,权重相同?也许,有一个单独的模型来验证共享权重?
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您应该使用 headless (without DetectionOutput) 模型进行训练,但提供一个带有顶层的模型进行评估:


def add_detection_output(model):

    # make validation/inference model here


...

evaluation = SSDEvaluation(model=add_detection_output(model),

                           evaluator=PascalDetectionEvaluator(categories),

                           data_files=[args.eval_data])

避免在回调中使用训练模型,让评估对象持有对验证模型的引用:


class SSDTensorboard(Callback):

    def __init__(self, evaluation):

        self.evaluation = evaluation


    def on_epoch_end(self, epoch, logs={}):

        metrics = self.evaluation.evaluate()


查看完整回答
反对 回复 2021-09-28
  • 1 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信