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