RuntimeError:CUDAエラー:デバイス側のアサートがトリガーされました



Runtimeerror Cuda Error



モデルはトレーニングされ、突然エラーが報告されました。問題は見つかりませんでした。エラーを再現しただけです。インターネット上では、torch.nn.functional.Fのcross_entropyの入力とターゲットに問題があると言われています。ターゲットインデックスが間違っています。 1,2]、次のように:ターゲットは[1,2,3]と[2,3,0]は大丈夫、[1,2,100]と[99,100,101]は正しくない、まだ理解していない、最初に覚えておいてください。

[1] https://blog.csdn.net/littlehaes/article/details/102806323



[二] https://blog.csdn.net/qq_27292549/article/details/81084782

[3]マルチクラスクロスエントロピーの計算: https://www.cnblogs.com/jclian91/p/9376117.html



[4]ターゲットラベルに不正な値が表示されます: https://www.cnblogs.com/geoffreyone/p/10653619.html

>>> import torch >>> import torch.nn.functional.F as F >>> input = torch.randn(3, 5, requires_grad=True) >>> target = torch.randint(5, (3,), dtype=torch.int64) >>> input tensor([[-1.5579, 0.5080, 0.1069, 0.7945, 0.4689], [-2.9727, 0.3491, -1.2172, -0.0223, 1.2733], [-0.2269, -1.1830, -0.8604, 1.2835, 1.2629]], requires_grad=True) >>> target tensor([2, 3, 0]) >>> loss = F.cross_entropy(input, target) >>> loss tensor(2.0206, grad_fn=) >>> input2 = torch.randn(4, 5, requires_grad=True) >>> lossloss = F.cross_entropy(input, target) >>> loss=F.cross_entropy(input2, target) Traceback (most recent call last): File '', line 1, in File '/home/cmz/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py', line 2056, in cross_entropy return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction) File '/home/cmz/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py', line 1869, in nll_loss .format(input.size(0), target.size(0))) ValueError: Expected input batch_size (4) to match target batch_size (3). >>> import numpy as np >>> target tensor([2, 3, 0]) >>> t=np.array([99,100,101]) >>> tt=torch.from_numpy(t) >>> tt tensor([ 99, 100, 101]) >>> loss = F.cross_entropy(input, tt) Traceback (most recent call last): File '', line 1, in File '/home/cmz/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py', line 2056, in cross_entropy return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction) File '/home/cmz/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py', line 1871, in nll_loss ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index) RuntimeError: Assertion `cur_target >= 0 && cur_target >> t=np.array([1,2,3]) >>> ttt=torch.from_numpy(t) >>> ttt tensor([1, 2, 3]) >>> loss = F.cross_entropy(input, ttt) >>> t=np.array([1,2,100]) >>> ttt=torch.from_numpy(t) >>> loss = F.cross_entropy(input, ttt) Traceback (most recent call last): File '', line 1, in File '/home/cmz/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py', line 2056, in cross_entropy return nll_loss(log_softmax(input, 1), target, weight, None, ignore_index, None, reduction) File '/home/cmz/anaconda3/lib/python3.7/site-packages/torch/nn/functional.py', line 1871, in nll_loss ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index) RuntimeError: Assertion `cur_target >= 0 && cur_target