Error 汇总
-
CUDA out of memory
原因: GPU内存溢出
解决: 减小BATCH_SIZE
-
CUDA error: device-side assert triggered
原因: 实际输入的label类别或Mask图像的像素类别超过了设定的类别数NUM_CLASSES
解决: 检查label值或mask图像的像素值, 如二值图像则令mask[mask>1]=1
-
RuntimeError: Error(s) in loading state_dict: Missing key(s) in state_dict: “module…”; Unexpected key(s) in state_dict
原因: 模型训练时使用了torch.nn.DataParallel()
,而此时加载模型参数后没有使用
解决:
法① 添加net = nn.DataParallel(net)
法② 替换导入net.load_state_dict({k.replace('module.',''):v for k,v in torch.load(参数路径).items()})
-
RuntimeError: Error(s) in loading state_dict for Yolact: Missing key(s) in state_dict: “backbone.layers.2.6.conv1.weight”, …
原因: 权重文件中的参数不匹配
解决: 将权重读出来, 对比报错信息, 更换权重文件或适配模型代码import torch path = "yolact_base_54_800000.pth" state_dict = torch.load(path) print(list(state_dict.keys()))
-
OSError: [Errno 22] Invalid argument: '\u202aD:/coco2017/annotations/instances_val2017.json
原因: 复制得到的路径中存在其他字符\u202aD
解决: 手动输入出错位置D:/
-
ImportError: DLL load failed: 页面文件太小,无法完成操作。
原因: 多线程问题, 虚拟内存不足
解决: 减小num_workers
或扩大虚拟内存 -
BrokenPipeError: [Errno 32] Broken pipe
原因: windows下多线程的问题,和DataLoader类有关
解决: 减小num_workers
-
Error(s) in loading state_dict for Yolact: size mismatch for prediction_layers.0.conf_layer.weight:
copying a param with shape torch.Size([243, 256, 3, 3]) from checkpoint, the shape in current model is torch.Size([21, 256, 3, 3]).
原因: 构造模型与导入模型的参数Size不一致, 是由于微调模型改变了输出层的形状
解决: 先导入模型参数, 再重置输出层 -
RuntimeError: Can’t call numpy() on Variable that requires grad. Use var.detach().numpy() instead.
原因: 带梯度变量不能直接转为numpy类型
解决: 采用建议的增加var.detach().numpy()
或者使用with torch.no_grad():
或者@torch.no_grad()
原因:
解决: