PyTorch 框架报错处理汇总

Error 汇总

1. CUDA out of memory

原因: GPU内存溢出
解决: 减小 BATCH_SIZE


2. CUDA error: device-side assert triggered

原因: 实际输入的label类别或Mask图像的像素类别超过了设定的类别数 NUM_CLASSES
解决: 检查label值或mask图像的像素值, 如二值图像则令mask[mask>1]=1


3. 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()


4. OSError: [Errno 22] Invalid argument \u202a

'\u202aD:/coco2017/annotations/instances_val2017.json
原因: 在win下,文件属性页安全选项卡中复制得到的路径中存在其他字符 \u202aD
解决: 手动输入出错位置 D:/


5. ImportError: DLL load failed: 页面文件太小,无法完成操作。

原因: 多线程问题, 虚拟内存不足
解决: 减小num_workers或扩大虚拟内存


6. BrokenPipeError: [Errno 32] Broken pipe

原因: windows下多线程的问题,和DataLoader类有关
解决: 减小num_workers


模型加载错误汇总

本文中描述不清的地方,请参考:
最完整、最全面:https://blog.csdn.net/LXYTSOS/article/details/90639524
无法加载问题:https://blog.csdn.net/m0_37518259/article/details/106050327
加载键值可匹配的权重:https://blog.csdn.net/qq_36523492/article/details/108769572
只想训练个别层:https://blog.csdn.net/qq_34351621/article/details/79967463
又一篇汇总:https://blog.csdn.net/hungryof/article/details/81364487

1. size mismatch

RuntimeError: 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不一致, 是由于微调模型改变了输出层的形状
解决: 先导入可以匹配的模型参数, 再另外将输出层权重初始化

2. Missing key(s)

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()))

3. Missing key(s) 并行训练

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()}) 

4. ModuleNotFoundError: No module named ‘model’

result = unpickler.load() ModuleNotFoundError: No module named 'models.yolo'

原因: 原始模型保存不规范,导致在加载时依赖工程目录
解决: 在原始工程下将权重resume之后,重新保存model.state_dict即可


回答: 当在使用PyTorch下载数据集时,可能会遇到报错的情况。其中一个常见的报错是由于网络问题导致无法下载数据集。这可能是因为程序无法连接到目标网站或者下载速度过慢。为了解决这个问题,可以尝试手动下载数据集并将其放入目标文件夹。具体步骤如下:首先,在想要存储数据的地方,新建一个路径,例如"{数据集名称}/raw/"。然后,使用pip list命令检查pip的版本是否需要更新。如果需要更新,可以使用命令"python.exe -m pip install --upgrade pip"来进行更新。接下来,将root参数设置为存储数据的地址,即数据集名称的父目录,并使用相应的代码加载数据集。例如,对于MNIST数据集,可以使用以下代码进行加载: ``` import torch from torchvision import datasets # Download training data from datasets. training_data = datasets.MNIST( root="D:/classic_dataset", train=True, download=True, transform=ToTensor(), ) # Download test data from datasets. test_data = datasets.MNIST( root="D:/classic_dataset", train=False, download=True, transform=ToTensor(), ) ``` 通过按照上述步骤进行操作,您应该能够成功下载并加载数据集,从而解决PyTorch下载报错的问题。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Pytorch无法下载/读取数据集Error downloading(不必改源代码)](https://blog.csdn.net/weixin_44126491/article/details/123810162)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [安装Pytorch出现ERROR: Could not find a version that satisfies the requirement...的解决方法](https://blog.csdn.net/m0_63604019/article/details/129961036)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值