PyTorch中nn.MSELoss(reduction='mean')对时序数据的平均范围问询
PyTorch中nn.MSELoss(reduction="mean")对时序数据的均值计算范围
当使用nn.MSELoss(reduction="mean")处理形状为(minibatch, feature, sequence length)的时序数据时,均值计算是对所有维度(批量、特征、时序)里的每一个元素求整体平均,并非仅针对批量维度。
你的验证代码解析
你写的代码刚好能印证这一点:
x_t是全1的张量,x_est是全2的张量,每个元素的均方误差都是(2-1)²=1- 哪怕张量总共有32×4×100=12800个元素,所有元素的平均值还是1,所以最终输出为
tensor(1.)
完整可运行代码
import torch import torch.nn as nn # 默认reduction='mean' loss_fn = nn.MSELoss() # 形状:[批量大小, 特征数, 时序长度] x_t = torch.ones((32, 4, 100)) x_est = torch.ones((32, 4, 100)) * 2 loss_result = loss_fn(x_t, x_est) print(loss_result)
运行输出
tensor(1.)
内容的提问来源于stack exchange,提问作者user23880552
相关产品推荐
相关产品推荐

