【问题标题】:Convert yolov4-tiny to transflow lite: ValueError: cannot reshape array of size 374698 into shape (256,256,3,3)将 yolov4-tiny 转换为 transflow lite: ValueError: cannot reshape array of size 374698 into shape (256,256,3,3)
【发布时间】:2021-08-23 03:16:41
【问题描述】:

当我试图将我的 yolov4-tiny 自定义权重转换为 tftile 时,它​​总是会发生。

这是我输入的:

python save_model.py --weights ./data/yolov4-tiny-obj-food_final.weights --output ./checkpoints/yolov4-tiny-416-tflite --input_size 416 --model yolov4 --framework tflite

然后出现错误信息。

conv_weights = conv_weights.reshape(conv_shape).transpose([2, 3, 1, 0])
ValueError: cannot reshape array of size 374698 into shape (256,256,3,3)

我检查了我的 labels.txt,没有空格或更多行。另外,我在 config.py 中更改了名称。

有没有办法解决这个问题?

感谢您的帮助!

附上我的部分代码,希望对你有帮助。

这里是github:https://github.com/piggychu0w0/food-image-detection

.cfg:

[convolutional]
size=1
stride=1
pad=1
filters=21
activation=linear

[yolo]
mask = 3,4,5
anchors = 10,14,  23,27,  37,58,  81,82,  135,169,  344,319
classes=2
num=6
jitter=.3
scale_x_y = 1.05
cls_normalizer=1.0
iou_normalizer=0.07
iou_loss=ciou
ignore_thresh = .7
truth_thresh = 1
random=0
resize=1.5
nms_kind=greedynms
beta_nms=0.6

.名称:

rice
toast

【问题讨论】:

  • 374698 是 2×187349 而 187349 是质数。你是如何制作出这种形状的数组的?
  • 说实话,我不确定我是怎么做到的。我参考这篇论文来完成权重文件。 blog.csdn.net/qq_44166805/article/details/105876028@NatthaphonHongcharoen
  • 唯一不同的是我直接在labelimg中转成yolo格式。
  • 问题在于,因为它不能被除 2 以外的任何东西整除,所以除了 (2, 187349) 或 (1, 374698) 之类的东西之外,你不能将它重塑为任何东西
  • 顺便说一句,包括代码而不仅仅是配置,因为它是导致错误的save_model.py,与 .cfg 或 .names 无关

标签: python tensorflow-lite yolov4


【解决方案1】:

简答

您必须将--tiny 添加到命令中。根据您在问题中给出的命令,它将是。

python save_model.py --weights ./data/yolov4-tiny-obj-food_final.weights --output ./checkpoints/yolov4-tiny-416-tflite --input_size 416 --model yolov4 --framework tflite --tiny

长答案

你看,有this line,如果你将它设置为True(通过添加--tiny),它将使load_weights()使用layer_size = 21here而不是layer_size = 110here

这里的问题是你拥有的权重和np.fromfile 命令实际上给了你一大块一维数组,在这个特定的文件中它的大小是(5882629,),然后你必须分配这些变量一层一层。

因此,当您创建大模型而不是小模型时。微小的权重文件在第 49 层用完了变量,而且还有这么大的素数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2021-12-24
    • 1970-01-01
    • 2022-07-26
    • 2021-01-26
    • 2020-05-18
    • 2023-02-02
    相关资源
    最近更新 更多