RuntimeError:CUDA device-side assert triggered
在学习Pytorch迁移学习-蚂蚁蜜蜂中,尝试将其改成人脸识别,结果报错RuntimeError:device-side assert triggered网上都说是label的原因,经过学习发现的确是这个的原因。model_ft = models.resnet18(pretrained=True)num_ftrs = model_ft.fc.in_features# Here the size o
在学习Pytorch迁移学习-蚂蚁蜜蜂中,尝试将其改成人脸识别,结果报错
RuntimeError:device-side assert triggered
网上都说是label的原因,经过学习发现的确是这个的原因。
model_ft = models.resnet18(pretrained=True)
num_ftrs = model_ft.fc.in_features
# Here the size of each output sample is set to 2.
# Alternatively, it can be generalized to nn.Linear(num_ftrs, len(class_names)).
model_ft.fc = nn.Linear(num_ftrs, len(class_names))
model_ft = model_ft.to(device)
criterion = nn.CrossEntropyLoss()
# Observe that all parameters are being optimized
optimizer_ft = optim.SGD(model_ft.parameters(), lr=0.001, momentum=0.9)
# Decay LR by a factor of 0.1 every 7 epochs
exp_lr_scheduler = lr_scheduler.StepLR(optimizer_ft, step_size=7, gamma=0.1)
Here the size of each output sample is set to 2.
Alternatively, it can be generalized to nn.Linear(num_ftrs, len(class_names)).
这里,每个输出样本的大小设置为2。
或者,可以将其推广到nn.Linear(num-ftrs,len(类名))。
原模型是仅对蚂蚁和蜜蜂进行训练是两个类别,输出样本为2,但是我在改人脸识别时候是训练多个人的图片,这就相当于多个label,所以将代码改成
model_ft.fc = nn.Linear(num_ftrs, len(class_names))
即label对应class_names,说白了,就是你要分几类,label就改成几,且label从0开始[0,1,]
具体到模型内部还不太清楚
想要学习一下呢,访问pytorch太慢了,我也是TM的无语……
欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)