SpursLipu / YOLOv3v4-ModelCompression-MultidatasetTraining-Multibackbone

YOLO ModelCompression MultidatasetTraining
GNU General Public License v3.0
445 stars 136 forks source link

知识蒸馏出现assertionerror #23

Closed SISTMrL closed 3 years ago

SISTMrL commented 4 years ago

我在执行蒸馏时使用的是如下指令:--data cfg/xray.data --batch_size 2 --KDstr 1 --weights weights/yolov3-mobilenet.weights --cfg cfg/yolov3-mobilenet/yolov3-mobilenet-coco.cfg --img_size 608 --epochs 80 --quantized 1 --qlayers 72 --t_cfg cfg/yolov3/yolov3.cfg --t_weights weights/best.pt

其中best.pt是我训练yolov3得到的最好的权重文件,为何会出现assertionerror, 该条错误出现在models.py 第544行的assert ptr==len(weights)这条语句。

我在跑yolov3的时候却没有出现错误,跑yolov3的指令如下:--data data/xray.data --batch_size 2 --accumulate 1 -pt --weights weights/yolov3-608.weights --cfg cfg/yolov3/yolov3.cfg --img_size 608 --epochs 60

诚盼回复,谢谢!

SISTMrL commented 4 years ago

我将assert那条语句给注释了,最后进行蒸馏时发现mobilenet的map也能到0.84(相当于我单独跑yolov3时所达到的map),不进行蒸馏时,单纯跑mobilenet map大概到0.79,是不是提升不大是由于受限于教师网络?

SpursLipu commented 4 years ago

你的data文件应该不是80分类,你在使用预训练模型的时候需要加入-pt指令。