CUDA error: device-side assert triggered 触发了设备端断言
-
原因1:模型大小不匹配
-
在定义模型的最终全连接层时,我没有将 196(斯坦福汽车数据集的类总数)作为输出单元的数量,而是使用了 195。错误通常在您执行反向传播的行中识别。您的损失函数将比较模型的输出和数据集中该观察的标签。万一您对标签和输出感到困惑,请参阅下面我如何定义它们:
-
原因2:损失函数输入错误
-
损失函数对于它们可以接受的可能输入具有不同的范围。如果您为输出层选择不兼容的激活函数,则会触发此错误。例如,BCELoss 要求其输入介于 0 和 1 之间。如果输入(模型的输出)超出该特定损失函数的可接受范围,则会触发错误。
后来尝试将F.mse_loss 改为nn.MSELoss
-
Bool value of Tensor with more than one value is ambiguous in Pytorch
Bool value of Tensor with more than one value is ambiguous当您尝试将张量转换为布尔值时会出现错误消息。 -
原来是没有实例化
-
self.loss = nn.MSELoss() 在forwrad时 theloss = self.loss(x, y)
一步步调试发现Tensor显示 Unable to get repr for <class ‘torch.Tensor’>
- 是因为写的程序的bug,一步步运行,仔细检查变量发现变量用错了。
参考
文章出处登录后可见!
已经登录?立即刷新