tanluren / yolov3-channel-and-layer-pruning

yolov3 yolov4 channel and layer pruning, Knowledge Distillation 层剪枝,通道剪枝,知识蒸馏
Apache License 2.0
1.5k stars 446 forks source link

请问支持yolov4训练吗 #65

Open CNSTJiatongLee opened 4 years ago

CNSTJiatongLee commented 4 years ago

我下载了官方的yolov4.weight权重,训练时报错assert ptr == len(weights)

Yipzcc commented 4 years ago

同样的问题

zbyuan commented 4 years ago

在https://github.com/tanluren/yolov3-channel-and-layer-pruning/blob/master/models.py#L351 添加 or os.path.basename(file) == 'yolov4.weights' 即可

sky186 commented 4 years ago

@zbyuan 你好,我用的是昵最新更新的代码 1、我现在用 yolov4 下载的权重,进行手部数据训练,但是 map 一直是0,几十个epoch,都是这一样,我不知道为什么 python3.6 train.py --cfg cfg/yolov4.cfg --data data/oxfordhand.data --weights weights/yolov4.weights --batch-size 16 --epochs 100

图片

2、然后层yolov4 层剪枝,model.py 57 行 filters = sum([output_filters[i + 1 if i > 0 else i] for i in layers]) 索引越界 python3.6 layer_channel_prune.py --cfg cfg/yolov4.cfg --data dat a/oxfordhand.data --weights yolo4_best.pt --global_percent 0.8 --layer_keep 0.01 --shortcuts 16

图片

zbyuan commented 4 years ago

1、 你试试你自己的数据怎么样,建议使用V3 2、 --weights yolo4_best.pt 这里用last.pt

sky186 commented 4 years ago

@zbyuan 1、 v4 是哪里有可能有点问题吗?我现在需要尝试压缩 yolo4 的模型,

zbyuan commented 4 years ago

U版本的YOLOV4在论文中的部分功能没有

sky186 commented 4 years ago

@zbyuan 谢谢你的回复 但是我要详细问下这个问题,现在您的工程是U版本的yolov4 ,训练加载的是官方的darknet 模型和权重文件 yolov4.cfg ,yolov4.weights, 那么部分功能,主要是在 model.py 这边缺少一部分信息? 还是其他方面的改进,例如损失函数,数据处理 或者论文中其他优化技巧,缺少一些实现?

zbyuan commented 4 years ago

比方说设置的参数不同 如果你仔细研读u代码 在损函的实现方式跟源码的还有差距 还有其他的地方 。。。

yishunzhijian commented 4 years ago

@zbyuan 谢谢你的回复 但是我要详细问下这个问题,现在您的工程是U版本的yolov4 ,训练加载的是官方的darknet 模型和权重文件 yolov4.cfg ,yolov4.weights, 那么部分功能,主要是在 model.py 这边缺少一部分信息? 还是其他方面的改进,例如损失函数,数据处理 或者论文中其他优化技巧,缺少一些实现?

请问yolov4剪枝成功了吗?

zbyuan commented 4 years ago

可以的

yishunzhijian commented 4 years ago

可以的

请问你是用u版的yolov4训练,然后剪枝的嘛?效果怎么样 我用你这个训练yolov4 map上升特别慢,远远低于darknet版的速度

zbyuan commented 4 years ago

可以的

请问你是用u版的yolov4训练,然后剪枝的嘛?效果怎么样 我用你这个训练yolov4 map上升特别慢,远远超过darknet版的速度 恩 是的?效果还可以 一个是c代码一个是pytorch版本的 这个正常 其二者在实现的方式略有不同

yishunzhijian commented 4 years ago

可以的

请问你是用u版的yolov4训练,然后剪枝的嘛?效果怎么样 我用你这个训练yolov4 map上升特别慢,远远超过darknet版的速度 恩 是的?效果还可以 一个是c代码一个是pytorch版本的 这个正常 其二者在实现的方式略有不同

我看前面说u版的yolov4功能比darknet的少,所以精度应该也不如darknet版吧 我尝试用darknet版训练好的权重进行稀疏训练,进行300epoch,然后剪枝,map是0.几,效果很差,我训练的是10个类别的自建数据集。

zbyuan commented 4 years ago

恩 是有差别 稀疏化训练mAP指标会降低 剪枝后微调可以上去

yishunzhijian commented 4 years ago

恩 是有差别 稀疏化训练mAP指标会降低 剪枝后微调可以上去

但是0.几有点离谱,微调也调不上去 我这个类别有点多,稀疏训练s值和epoch设置多少合适呢 我用u版的yolov4训练尝试一下

zbyuan commented 4 years ago

恩 是有差别 稀疏化训练mAP指标会降低 剪枝后微调可以上去

但是0.几有点离谱,微调也调不上去 我这个类别有点多,稀疏训练s值和epoch设置多少合适呢 我用u版的yolov4训练尝试一下

稀疏化比例按照你的数据来 这个不好恒定 epoch的设置也是根据你的数据来的 还有不明白可以加群问下

yishunzhijian commented 4 years ago

恩 是有差别 稀疏化训练mAP指标会降低 剪枝后微调可以上去

但是0.几有点离谱,微调也调不上去 我这个类别有点多,稀疏训练s值和epoch设置多少合适呢 我用u版的yolov4训练尝试一下

稀疏化比例按照你的数据来 这个不好恒定 epoch的设置也是根据你的数据来的 还有不明白可以加群问下

请问你用yolov4训练,微调后map值恢复到之前的水平了嘛?

sticktotheend commented 7 months ago

@zbyuan 您好,请问使用yolov4-tiny模型,需要修改哪些部分呢?我刚接触这方面的学习,希望您不吝赐教。