pytorch pruning训练自己的数据库(流程+BUG调试)

本文详细介绍了使用PyTorch进行模型剪枝的步骤,包括环境配置、数据集准备、训练过程和剪枝过程。在训练和剪枝过程中遇到了ImportError: cv2、RuntimeError: THCTensorCopy.c、内存不足和跨GPU错误等问题,并逐一提供了解决方案。此外,还提到了在PyTorch 0.2版本中遇到的兼容性问题及其解决方法。
摘要由CSDN通过智能技术生成

环境要求

pytorch 0.1
0.2版本会有问题,解决方法后文会介绍。
如何查看版本?在终端输入:
python
import torch
torch.version

数据集制作

本文代码使用的数据加载方法是datasets.ImageFolder,它要求数据集不同类别的图片放在不同文件夹下,文件格式如下:
这里写图片描述
将自己的数据集做成图中的形式,即可。

运行过程

train

python finetune.py –train –train_path path_to_your_dataset/train/ –test_path path_to_your_dataset/test/
这里会去掉VGG的后三层fc,而根据自己的num_class训练新的fc层,总共迭代20个epoch。

prune

python finetune.py –prune –train_path path_to_your_dataset/train/ –test_path path_to_your_dataset/test/
这里会开始对filter进行剪枝,每次剪512个filter,每次剪完都会迭代10个epoch以恢复模型的能力;然后继续下一次剪枝,直至将VGG模型的2/3的filter剪掉;最后进行15个epoch以得到最终的剪枝模型。

ps:这里的512是自己设定的,论文中是1,但每次只剪1个filter太慢,所以设定为512,加快剪枝过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值