web-dev-qa-db-fra.com

Erreur d'exécution CUDA (59): assertion côté appareil déclenchée

J'ai accès à Tesla K20c, j'utilise ResNet50 sur le jeu de données CIFAR10 ... Ensuite, je reçois l'erreur comme suit:
THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1524584710464/work/aten/src/THC/generated/../generic/THCTensorMathPointwise.cu line=265 error=59 : device-side assert triggered
Traceback (most recent call last):
File "main.py", line 109, in <module>
train(loader_train, model, criterion, optimizer)
File "main.py", line 54, in trainoptimizer.step()
File "/usr/local/anaconda35/lib/python3.6/site-packages/torch/optim/sgd.py", line 93, in step
d_p.add_(weight_decay, p.data)RuntimeError: cuda runtime error (59) : device-side assert triggered at /opt/conda/conda-bld/pytorch_1524584710464/work/aten/src/THC/generated/../generic/THCTensorMathPointwise.cu:265
Comment résoudre cette erreur

9
saichand

En général, lorsque vous rencontrez cuda runtine errors, il est conseillé de relancer votre programme en utilisant le CUDA_LAUNCH_BLOCKING=1 flag pour obtenir une trace de pile précise.

Dans votre cas spécifique, les cibles de vos données étaient trop élevées (ou basses) pour le nombre de classes spécifié.

8
McLawrence

J'ai rencontré ce problème plusieurs fois. Et je trouve que c'est un problème d'index. Par exemple, si votre étiquette de vérité au sol commence à 1: target = [1,2,3,4,5], alors vous devez soustraire 1 pour chaque étiquette, changez-la en: [0,1,2,3,4] . Cela résout mon problème à chaque fois.

8
Rainy