使用ncnn模型预测获取错误的结果

Posted 修炼之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ncnn模型预测获取错误的结果相关的知识,希望对你有一定的参考价值。

导读

在使用ncnn来构建c++的预测代码时,有时候得到的结果与python代码的预测结果不一致,这样会降低模型预测的准确率甚至会使得模型的预测结果变得不可靠,这时候我们就需要检测自己的代码是否存在问题,这篇文章将会介绍,当出现这种情况时,我们应该如何来解决。

caffemodel should be row-major

如果使用的是caffe的模型,需要注意ncnn的caffe2ncnn工具转换模型的时候是以caffe的模型为row-major的格式来进行转换的。row-major以下面这个3×3的权重参数为例

a b c
d e f
g h i

需要注意的是matlab caffe是以col-major的格式来存储模型参数的,所以针对matlab caffe你需要对它的参数进行转置处理,或者使用c++ caffe进行重新训练。除此之外,你还可以通过matcaffe2caffe工具来进行转换

检查输入数据的格式

需要注意输入图片数据的通道顺序,如果训练和测试的顺序不一致会导致模型预测准确率降低。如果你使用的是c++ caffe或opencv来进行读取图片的,那么输入图片的通道顺序应该是BGR。如果你使用是pytorch、TensorFlow或mxnet来图片图片的&#

以上是关于使用ncnn模型预测获取错误的结果的主要内容,如果未能解决你的问题,请参考以下文章

基于mobilenet的ncnn代码实例详解

ncnn常见的错误以及解决办法

模型推理ncnn 模型转换及量化流程

NCNN验证YOLOV4模型输入数据归一化系数

预测错误结果的机器学习模型

NCNN 模型推理详解及实战