问题bug解决:
AssertionError: Mismatch between model and given anchor and class sizes
网上找了好多这个错误的解决方法,比如设置好正确的anchor地址等等,后面发现是我在转换yolo模型的时候转换出错了,不完整的模型,我是把yolo的权重转换成keras的h5模式时出错的。
这两个地址也要和模型对上。
也有可能是预训练模型和你自己设定的类别和anchor不符,
1、预训练模型可能是YOLO的(9个anchor),而不是你的anchor个数
2、类别不同,类别设定和预训练的模型不匹配(例如,您用的别人训练好的模型(20类),而您自己classes.txt中定义的类别与之不匹配)
你的 val_loss=nan 和 Found 0 boxes for img 这些问题都有可能就是模型的问题。
一开始直接运行 convert.py 来转换成 keras 支持的 .h5 模型报错:
usage: convert.py [-h] [-p] [-w] config_path weights_path output_path convert.py: error: the following arguments are required: config_path, weights_path, output_path
什么参数之类的,后面在终端运行:python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
一直没有反应,后面在pycharm的终端运行,也还是不行,后面发现原因是Python环境位置问题,最后在Anaconda prompt 打开后cd切换到工程目录下运行:python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
成功转换。
对比一下,之前转换出错的 yolo.h5 大小 241222 KB
正确转换的 yolo.h5 大小 242863 KB