站点图标 AI技术聚合

CUDA error: device-side assert triggered

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,一步步运行,仔细检查变量发现变量用错了。

参考

添加链接描述

文章出处登录后可见!

已经登录?立即刷新
退出移动版