我用sequence_loss定义了我自己的损失函数
loss = tf.contrib.legacy_seq2seq.sequence_loss(logits, labels, weights)
我希望将其添加到eval_metric_ops中,以便在我的 ML 引擎包中我可以连续显示张量板中的评估损失(默认值只是准确性(。我尝试将其添加为自定义eval_metric_ops
eval_metric_ops = {
'loss': loss # this has already been coputed for Modes.EVAL
}
但是,我收到错误"TypeError:eval_metric_ops的值必须是(metric_value,update_op(元组,给定:Tensor("sequence_loss/truediv:0",shape=((,dtype=float32(键:损失" - 我需要做什么才能将损失作为eval_metric_op传递?我猜我目前的损失应该是指标值,但我不确定update_op应该是多少?
在您的情况下,可以使用tf.metrics
使用损失的移动平均值来实现度量函数:
def metric_fn(labels, predict):
loss = tf.contrib.legacy_seq2seq.sequence_loss(logits, labels, weights)
mean, op = tf.metrics.mean(loss)
return mean, op