阅读(9.1k) 书签 (0)

TensorFlow函数:tf.losses.compute_weighted_loss

2018-08-18 15:46 更新

tf.losses.compute_weighted_loss函数

tf.losses.compute_weighted_loss(
    losses,
    weights=1.0,
    scope=None,
    loss_collection=tf.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)

定义在:tensorflow/python/ops/losses/losses_impl.py.

计算加权loss.

参数:

  • losses:形状为[batch_size, d1, ... dN]的Tensor.
  • weights:可选的,其秩为0或与losses具有相同等级的Tensor,并且必须可广播到losses(即,所有维度必须为1或者与相应的losses维度相同).
  • scope:计算loss时执行的操作范围.
  • loss_collection:loss将被添加到这些集合中.
  • reduction:适用于loss的减少类型.

返回:

与losses相同类型的加权损失Tensor,如果reduction是NONE,它的形状与losses相同;否则,它是标量.

可能引发的异常:

  • ValueError:如果weights是None,或者与losses的形状不兼容,或者是否存在losses或weights缺少维度(秩)的数量.
注意:当计算的来自两个加权损失捐款的梯度losses和weights被考虑.如果你weights依赖于某些模型参数,但你不希望这会影响损失梯度,则需要应用tf.stop_gradient到weights它们传递给前compute_weighted_loss.

注: 当计算从lossesweights的加权loss贡献的梯度时要考虑.如果您的权重依赖于某些模型参数,但您不希望此影响loss渐变,则在将它们传递给compute_weighted_loss之前,需要将tf. stop_gradient传递给weights.