smooth_l1

paddle.fluid.layers. smooth_l1 ( x, y, inside_weight=None, outside_weight=None, sigma=None )

该 layer 计算变量 xy 的 smooth L1 loss,它以 xy 的第一维大小作为批处理大小。对于每个实例,按元素计算 smooth L1 loss,然后计算所有 loss。输出变量的形状是[batch_size, 1]

参数

  • x (Tensor|LoDTensor) - 数据类型为 float32,rank 至少为 2 的 Tensor。smooth L1 损失函数的输入,shape 为[batch_size, dim1,…,dimN]。

  • y (Tensor|LoDTensor) - 数据类型为 float32,rank 至少为 2 的 Tensor。与 x shape 相同的目标值。

  • inside_weight (Tensor|None) - 数据类型为 float32,rank 至少为 2 的 Tensor。这个输入是可选的,与 x 的 shape 应该相同。如果给定,(x - y) 的结果将乘以这个 Tensor 元素。

  • outside_weight (Tensor|None) - 数据类型为 float32,一个 rank 至少为 2 的 Tensor。这个输入是可选的,它的 shape 应该与 x 相同。smooth L1 loss 的输出会乘以这个 Tensor。

  • sigma (float|NoneType) - smooth L1 loss layer 的超参数。标量,默认值为 1.0。

返回

smooth L1 损失的输出值,shape 为 [batch_size, 1]

返回类型

Variable(Tensor),数据类型为 float32 的 Tensor。

代码示例

COPY-FROM: paddle.fluid.layers.smooth_l1