pytorch 损失函数(前)

在盘点常见损失函数之前,有必要先说一下在很多的损失函数中都出现的三个参数,也即size_average,reduce以及reduction,并且它们三个之间还存在一定的关系。

  • size_average:bool类型;默认情况下,如果只有一个batch,每个batch有多个元素,那么误差计算结果是这个batch中多个元素的平均值;如果是有多个batch,然后每个batch有多个元素,那么误差计算的结果是将每个batch的平均值放到一块再求多个batch的平均值;如果把这个参数设置为False,那么只需要将计算平均值换成计算和即可,其他完全一样;默认该参数值为True;但是如果 reduce参数被指定为False,那么这个参数将被忽略,也即不起作用。

  • reduce:bool类型;默认情况下,计算结果的形式会由size_average来决定,要么是求平均值,要么是求和,也即返回的是标量;但是如果 reduce参数被设置成False,那么既不求平均,也不求和,而是把每个batch,batch的每个元素的计算结果直接列出来,也即返回的是个向量,这个向量的形状和batch的个数以及每个batch里元素的个数是有关系的。默认该值是True。

  • reduction:可以有三种取值,“none”,“mean”,“sum”,默认值是"mean"。如果你理解了对前面两个参数的解释,那么这里就很容易理解。如果是"none",则既求平均,也不求和,返回的是向量;如果是"mean",则计算的是平均值;如果是"sum",则计算的是和;并且后两者返回的是标量。这里所说的求平均和求和与上面两个参数中所说的一模一样。

猜你喜欢

转载自blog.csdn.net/weixin_42535423/article/details/107506787