Pytorch-修改模型权重的大小

cfg='models/yolov5s.yaml'
device = torch_utils.select_device('0,1')
weights = 'weights/qr_model_320.pth'

model = Model(cfg).to(device)
dict = torch.load(weights)
model.load_state_dict(dict,strict=False)
print(type(dict)) #<class 'collections.OrderedDict'>
#print(dict['model.0.conv.conv.weight']) #报错,没有添加module
#print(dict['module.model.0.conv.conv.weight'].shape) #torch.Size([32, 12, 3, 3])

##########################修改部分#############################
dict['module.model.0.conv.conv.weight'].resize_(32, 4, 3, 3)
print(dict['module.model.0.conv.conv.weight'].shape) 
torch.save(dict, 'weights/qr_model_320_gray.pth')

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 PointNet 或 PointNet++ 在 PyTorch 中训练自己的数据集,你需要按照以下步骤进行操作: 1. 准备数据集: - 将你的点云数据集准备成与 PointNet/PointNet++ 要求的格式相同。通常,数据集应该是一个Numpy数组,形状为 (N, C) 或 (N, D, C),其中 N 是点的数量,C 是每个点的特征向量的维度,D 是点的维度(例如,对于三维点云,D = 3)。 - 根据数据集创建一个自定义的 PyTorch Dataset 类,用于加载和处理数据。 2. 定义模型: - 在 `models` 目录中,你可以找到 PointNet 和 PointNet++ 的模型定义文件。根据你的任务需求,在这些模型的基础上进行修改或创建一个新的模型文件。 - 在模型文件中,确保输入数据和标签的维度匹配,并定义正确的网络结构。 3. 设置训练参数: - 在 `train.py` 文件中,你可以设置训练过程的参数,如学习率、批大小、训练时长等。 - 根据你的需求修改其他训练参数,如优化器类型、损失函数等。 4. 加载数据集和模型: - 在 `train.py` 文件中,使用自定义的 Dataset 类加载你的数据集。 - 导入你定义的模型,并根据需要初始化权重或加载预训练的模型权重。 5. 训练模型: - 在 `train.py` 文件中,使用训练数据和模型进行训练。 - 在每个训练迭代中,计算损失函数并执行反向传播。 - 根据需要进行模型保存和日志记录。 6. 评估模型: - 在 `test.py` 文件中,使用测试数据集对训练好的模型进行评估。 - 计算模型在测试集上的准确率、精度、召回率等指标。 请注意,以上步骤是一个基本的指导,具体实现可能会根据你的数据集和任务的特定要求有所不同。在使用 PointNet_Pointnet2_pytorch-master 进行训练之前,建议先了解代码结构和相关文档,以便更好地适应你的数据集和任务。 希望这些步骤对你有所帮助!如果你有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值