我有一个自定义的yolov4-tiny模型,我已经用以下命令训练过它
./darknet.exe detector train ./data/device.data ./cfg/yolov4-tiny-device.cfg ./yolov4-tiny.conv.29
但是我不能使用下面的repo https://github.com/hunglc007/tensorflow-yolov4-tflite将模型转换为tensorflow
出于某些原因,我尝试使用以下命令进行转换
py ./save_model.py --weights ./data/yolov4-tiny-device_last.weights --output ./checkpoint/yolov4-tiny-device-416 --input_size 416 --model yolov4 --tiny
我收到以下错误
Traceback (most recent call last):
File ".\save_model.py", line 68, in <module>
app.run(main)
File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\absl\app.py", line 312, in run
_run_main(main, args)
File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\absl\app.py", line 258, in _run_main
sys.exit(main(argv))
File ".\save_model.py", line 64, in main
save_tf()
File ".\save_model.py", line 59, in save_tf
utils.load_weights(model, FLAGS.weights, FLAGS.model, FLAGS.tiny)
File "C:\Users\USER\Desktop\VSCProjects\tensorflow-yolov4-tflite\core\utils.py", line 64, in load_weights
conv_weights = conv_weights.reshape(conv_shape).transpose([2, 3, 1, 0])
ValueError: cannot reshape array of size 607322 into shape (256,384,3,3)
我已经将__C.YOLO.CLASSES更改为我的类文件,并且我的类文件只有一行用于一个类。
我对一个普通的yolov4模型做了同样的处理,它工作得很好。
如何修复以下错误并将我的模型转换为tensorflow?
发布于 2021-11-09 17:00:35
对于转换为tflite的save_model.py
,缺少--framework tflite
标志。虽然我不确定这就是原因。对我有效的转换命令示例,
!python save_model.py \
--weights "yolov4-tiny-obj_best.weights" \
--output "checkpoints/yolov4-tiny-416" \
--input_size 416 --model yolov4 --tiny --framework tflite
我之前遇到过这个问题,这是由于将__C.YOLO.CLASSES
硬编码到一个文件中。该错误可能是由于文件路径错误或缺少标志所致。
我有一些基于类似问题的YoloV4 tiny的conversion instructions here。
类似的问题,cannot reshape array of size 1665179 into shape (512,512,3,3)。
https://stackoverflow.com/questions/69900633
复制相似问题