pytorch中的MSELoss

MSELoss的定义:

\ell(x, y) = L = \{l_1,\dots,l_N\}^\top, \quad l_n = \left( x_n - y_n \right)^2

其中,N是batch_size,如果reduce设置为true,则:

求和运算符计算后,仍会对除以n;如果size_average设置为False后,就会避免除以N;

参数:

size_average (bool, optional):已经弃用,默认loss在对输入batch计算损失后,会求平均值。对于sample中有多个元素时,如果size_average设置为false,loss则是对每个batch进行求和,当reduce设置为False时,该参数就会被设置为False,默认为True。

reduce (bool, optional):默认为True,当前已弃用。默认情形下,loss会对batch数据进行求和然后计算均值。当reduce设置为False时,相当于size_average设置为False,只对batch的loss求和,不求平均。

reduction (string, optional):设置对输出的计算方法,有三个选项:none | elementwise_mean | sum。none:对每个元素求loss后不进行任何额外计算;elementwise_mean:将对loss结果求平均;sum:只对所有loss进行求和。注意:参数size_average和reduce已经弃用,当时当设置这两个参数中的任意一个时,将会对reduction进行覆盖。默认选项:elementwise_mean。

用法示例:

loss = nn.MSELoss()
input = torch.randn(3, 5, requires_grad=True)
target = torch.randn(3, 5)
output = loss(input, target)
output.backward()

 

你可能感兴趣的:(DeepLearning)