小编Loa*_*Gio的帖子

如何防止 Keras 在训练期间计算指标

我正在使用 Tensorflow/Keras 2.4.1,并且有一个(无监督的)自定义指标,它将我的几个模型输入作为参数,例如:

model = build_model() # returns a tf.keras.Model object
my_metric = custom_metric(model.output, model.input[0], model.input[1])
model.add_metric(my_metric)
[...]
model.fit([...]) # training with fit
Run Code Online (Sandbox Code Playgroud)

然而,它恰好custom_metric非常昂贵,所以我希望仅在验证期间计算它。我找到了这个答案,但我几乎不明白如何使解决方案适应我的指标,该指标使用多个模型输入作为参数,因为该update_state方法似乎并不灵活。

在我的上下文中,除了编写我自己的训练循环之外,是否有办法避免在训练期间计算我的指标?另外,我很惊讶我们无法本机指定 Tensorflow 某些指标只能在验证时计算,这有什么原因吗?

此外,由于模型经过训练来优化损失,并且训练数据集不应用于评估模型,我什至不明白为什么默认情况下 Tensorflow 在训练期间计算指标。

python machine-learning deep-learning keras tensorflow

8
推荐指数
1
解决办法
1213
查看次数