ncnn模型 与 pytorch模型不一致问题解决


0、背景

  pytorch转onnx转ncnn模型后,C++调用ncnn模型输出结果跟python调用pytorch模型结果不一样

1、解决

  model.param 修改,reshape,改-1自适应大小,根据图片长宽比,不一定是80*80(6400),40*40(1600),20*20(400),所以改-1,及以下代码

   代码修改

if (in_pad.w > in_pad.h)
    {
        num_grid_x = in_pad.w / stride;
        //num_grid_y = num_grid / num_grid_x;//原始代码
        num_grid_y = in_pad.h / stride;
    }
    else
    {
        num_grid_y = in_pad.h / stride;
        //num_grid_x = num_grid / num_grid_y;//原始代码
        num_grid_x = in_pad.w / stride;
    }