这个错误有几个尝试的方向:
- 强行将输出限制在(0, 1)之间
out = out.clamp(0, 1)
- 输出可能有
nan
值, 将其置为零
out[out!=out] = 0
- 如果用的是binary cross entropy, 用nn.BCEWithLogitsLoss() 代替 nn.BCELoss()
- 当然也有可能是脏数据的问题
参考:
https://stackoverflow.com/questions/66456541/runtimeerror-cuda-error-device-side-assert-triggered-on-loss-function