RuntimeError: cuda runtime error (59) : device-side assert triggered at C:/w...的一种可能

很多博客上给的解释是计算LOSS时超出了标签类别分类,如
报错 RuntimeError: cuda runtime error (59) : device-side assert triggered at /py/conda-bld/pytorch_…
经反复检查更改代码,发现Tensor经过某些计算步骤后会出现 n a n nan nan ,锁定相关步骤后发现是因为在定义 n n . P a r a m e t e r nn.Parameter nn.Parameter 后没有对其进行初始化,使得初始参数为0,导致后续一系列计算错误。
所以很多时候出现一些不太明确的报错时,可以检查一下模型过程的Tensor变化从而找出引起异常的问题。
参数初始化:

transfer = nn.Parameter(torch.Tensor(size1, size2))
init.xavier_normal_(transfer)

PyTorch 学习笔记(四):权值初始化的十种方法

你可能感兴趣的:(pytorch,python,Debug系列)