001 pytorch神经网络输出常值
- 【问题描述】
- 搭建模型输出为常值,如图,蓝色为y_pred, 红色为y_true
- 程序警告:
- UserWarning: Using a target size (torch.Size([98, 1, 1])) that is different to the input size (torch.Size([98, 1])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size. return F.mse_loss(input, target, reduction=self.reduction)
loss_func = nn.MSELoss()
loss = loss_func(y_pred, y_label)
- 2)排查发现问题 出现在 Loss的计算上。 由于一些原因,y_pred 与y_true的维度不一致,见上图。 程序中的Loss计算根本不起作用,对应的梯度计算也出错,应该为0,然后网络参数更新出错。
- 3)不看程序警告的后果!程序已经明确给出警告,自己却会看警告,用了大半天排查。
|