关于pytorch中损失函数的参数说明

参考自HawardScut

很多的 loss 函数都有 size_averagereduce 两个布尔类型的参数。因为一般损失函数都是直接计算 batch 的数据,因此返回的 loss 结果都是维度为 (batch_size, ) 的向量。

  • (1)如果 reduce = False,那么 size_average 参数失效,直接返回向量形式的 losssum
  • (2)如果 reduce = True,那么 loss 返回的是标量
    • a)如果 size_average = True,返回 loss.mean();现在已经废除,可以使用reduction='mean'代替
    • b)如果 size_average = False,返回 loss.sum();可以使用reduction='sum'代替
    • 上面选择mean或者sum都可,但是要注意若为mean那么需要除以一个N,那么其求导的值相对于sum就会变小,因此在后续优化器中需要适当调整学习率

注意:默认情况下, reduce = True,size_average = True

posted @ 2021-11-18 20:18  xingye_z  阅读(433)  评论(0编辑  收藏  举报