pytorch损失函数

L1 Loss(Mean Absolute Error,MAE)
pytorch代码:

torch.nn.L1Loss()

L2 Loss(Mean Squared Error,MSE)
pytorch代码:

torch.nn.MSELoss()

L1Loss和MSELoss的参数:
旧版的函数有reduce、size_average两个参数,新版的只有一个reduction参数了,功能是一样的。
reduction的意思是维度要不要缩减,以及怎么缩减,有三个选项:

  • none:不要压缩,如果参数值为none,那么损失值与输入值的维度相同
  • mean:求平均值,为求和后再除以所有维度的乘积
  • sum:求和
    公式及优缺点参考:
    https://blog.csdn.net/Xiaobai_rabbit0/article/details/111032136

交叉熵损失

loss = torch.nn.CrossEntropyLoss()
l = loss(y_hat, y)

这里的y_hat是一个向量,测试时可以得到独热码,而标签为一个数。y_hat并没有经过softmax,而是在计算损失的同时进行softmax。
RuntimeError: bool value of Tensor with more than one value is ambiguous

nn.CrossEntropyLoss() 是一个类,应该先行进行实例化。写代码时候粗心会导致这个错误,但是又不容易察觉出来。

你可能感兴趣的:(python基础,pytorch基础,pytorch,python,深度学习)