vscode 进行训练出错。到底是哪里出问题了
/opt/conda/conda-bld/pytorch_1565272279342/work/aten/src/THCUNN/ClassNLLCriterion.cu:105: void cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long *, Dtype *, int, int, int, int, long) [with Dtype = float, Acctype = float]: block: [0,0,0], thread: [3,0,0] Assertion `t >= 0 && t < n_classes` failed.
Traceback (most recent call last):
File "train_classify.py", line 277, in <module>
train(args, model, criterion, optimizer, device, train_dataloader, writer, epoch)
File "train_classify.py", line 42, in train
running_loss += loss.item()
RuntimeError: CUDA error: device-side assert triggered
这个应该是标签问题,标签的类数目超过你训练的类数目,比如只有5个来,id是0-4,这时候来个id=6的,就会出现错误。
解决方法有两种,一种就是写个脚本检查下标签文件里面的标签,找到超过类别的,去掉就行,第二就是进入到train里面之前检查一下标签的数据
没有程序 不好判断 看下这篇文章 https://www.cnblogs.com/henuliulei/p/13258297.html 可能有用
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632