python - 无法将 yolov4 tiny 转换为 tf 模型不能 - 无法将大小为 607322 的数组重塑为形状 (256,384,3,3)
问题描述
我有一个使用以下命令训练的自定义 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?
解决方案
您缺少用于转换为 tflite 的标志--framework tflite
。save_model.py
虽然我不确定这是不是这个原因。对我有用的转换示例命令,
!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转换说明。
推荐阅读
- nginx - 将 kibana 放在 nginx-ingress 后面失败并出现 HTTP 错误
- python - 如何在 Jupyter 中很好地显示 Pyspark DataFrames?
- vue.js - Vuetify Expandable Data Table:展开行位置
- transactions - IBM db2,SQL 脚本中的事务
- javascript - Typescript在http请求上设置返回类型的正确方法
- python - PyQt5 QWebEngine 对 Javascript 的错误渲染
- python - 我们如何在 sympy 中分离方程较小的分离方程
- wordpress - 首页上的WordPress分页不起作用
- jenkins - 使用“kubectl apply”命令滚动更新
- jenkins - 是否可以为 jenkins github 组织构建设置构建丢弃选项?