ncnn 量化后的int8模型部署在Android上出现闪退

kognpnkq  于 5个月前  发布在  Android
关注(0)|答案(6)|浏览(119)

1.量化前的模型在win10和Android上都可以运行,量化后的模型在win10上可以运行。
2.量化后的模型部署在Android上发生闪退。
3.今天(8月9日)使用最新的ncnn版本,问题仍存在。
4. 量化后的param文件如下,麻烦大佬了!

7767517
65 74
Input images 0 1 images
Convolution Conv_0 1 1 images 265 0=16 1=3 3=2 4=1 5=1 6=432 8=102 9=1
Convolution Conv_3 1 1 265 268 0=32 1=1 5=1 6=512 8=102 9=1
ConvolutionDepthWise Conv_6 1 1 268 271 0=32 1=3 4=1 5=1 6=288 7=32 8=101 9=1
Convolution Conv_9 1 1 271 273 0=8 1=1 5=1 6=256 8=102
Convolution Conv_11 1 1 273 276 0=48 1=1 5=1 6=384 8=102 9=1
ConvolutionDepthWise Conv_14 1 1 276 279 0=48 1=3 3=2 4=1 5=1 6=432 7=48 8=101 9=1
Convolution Conv_17 1 1 279 281 0=8 1=1 5=1 6=384 8=2
Split splitncnn_0 1 2 281 281_splitncnn_0 281_splitncnn_1
Convolution Conv_19 1 1 281_splitncnn_1 284 0=48 1=1 5=1 6=384 8=102 9=1
ConvolutionDepthWise Conv_22 1 1 284 287 0=48 1=3 4=1 5=1 6=432 7=48 8=101 9=1
Convolution Conv_25 1 1 287 289 0=8 1=1 5=1 6=384 8=2
BinaryOp Add_27 2 1 281_splitncnn_0 289 290
Split splitncnn_1 1 2 290 290_splitncnn_0 290_splitncnn_1
Convolution Conv_28 1 1 290_splitncnn_1 293 0=48 1=1 5=1 6=384 8=102 9=1
ConvolutionDepthWise Conv_31 1 1 293 296 0=48 1=3 4=1 5=1 6=432 7=48 8=101 9=1
Convolution Conv_34 1 1 296 298 0=8 1=1 5=1 6=384 8=2
BinaryOp Add_36 2 1 290_splitncnn_0 298 299
Convolution Conv_37 1 1 299 302 0=48 1=1 5=1 6=384 8=102 9=1
ConvolutionDepthWise Conv_40 1 1 302 305 0=48 1=3 3=2 4=1 5=1 6=432 7=48 8=101 9=1
Convolution Conv_43 1 1 305 307 0=16 1=1 5=1 6=768 8=2
Split splitncnn_2 1 2 307 307_splitncnn_0 307_splitncnn_1
Convolution Conv_45 1 1 307_splitncnn_1 310 0=96 1=1 5=1 6=1536 8=102 9=1
ConvolutionDepthWise Conv_48 1 1 310 313 0=96 1=3 4=1 5=1 6=864 7=96 8=101 9=1
Convolution Conv_51 1 1 313 315 0=16 1=1 5=1 6=1536 8=2
BinaryOp Add_53 2 1 307_splitncnn_0 315 316
Split splitncnn_3 1 2 316 316_splitncnn_0 316_splitncnn_1
Convolution Conv_54 1 1 316_splitncnn_1 319 0=96 1=1 5=1 6=1536 8=102 9=1
ConvolutionDepthWise Conv_57 1 1 319 322 0=96 1=3 4=1 5=1 6=864 7=96 8=101 9=1
Convolution Conv_60 1 1 322 324 0=16 1=1 5=1 6=1536 8=2
BinaryOp Add_62 2 1 316_splitncnn_0 324 325
Split splitncnn_4 1 2 325 325_splitncnn_0 325_splitncnn_1
Convolution Conv_63 1 1 325_splitncnn_1 328 0=96 1=1 5=1 6=1536 8=102 9=1
ConvolutionDepthWise Conv_66 1 1 328 331 0=96 1=3 4=1 5=1 6=864 7=96 8=101 9=1
Convolution Conv_69 1 1 331 333 0=16 1=1 5=1 6=1536 8=2
BinaryOp Add_71 2 1 325_splitncnn_0 333 334
Split splitncnn_5 1 2 334 334_splitncnn_0 334_splitncnn_1
Convolution Conv_72 1 1 334_splitncnn_1 337 0=96 1=1 5=1 6=1536 8=102 9=1
ConvolutionDepthWise Conv_75 1 1 337 340 0=96 1=3 4=1 5=1 6=864 7=96 8=101 9=1
Convolution Conv_78 1 1 340 342 0=16 1=1 5=1 6=1536 8=2
BinaryOp Add_80 2 1 334_splitncnn_0 342 343
Convolution Conv_81 1 1 343 346 0=96 1=1 5=1 6=1536 8=102 9=1
ConvolutionDepthWise Conv_84 1 1 346 349 0=96 1=3 4=1 5=1 6=864 7=96 8=101 9=1
Convolution Conv_87 1 1 349 351 0=24 1=1 5=1 6=2304 8=2
Split splitncnn_6 1 2 351 351_splitncnn_0 351_splitncnn_1
Convolution Conv_89 1 1 351_splitncnn_1 354 0=144 1=1 5=1 6=3456 8=102 9=1
ConvolutionDepthWise Conv_92 1 1 354 357 0=144 1=3 4=1 5=1 6=1296 7=144 8=101 9=1
Convolution Conv_95 1 1 357 359 0=24 1=1 5=1 6=3456 8=2
BinaryOp Add_97 2 1 351_splitncnn_0 359 360
Split splitncnn_7 1 2 360 360_splitncnn_0 360_splitncnn_1
Convolution Conv_98 1 1 360_splitncnn_1 363 0=144 1=1 5=1 6=3456 8=102 9=1
ConvolutionDepthWise Conv_101 1 1 363 366 0=144 1=3 4=1 5=1 6=1296 7=144 8=101 9=1
Convolution Conv_104 1 1 366 368 0=24 1=1 5=1 6=3456 8=2
BinaryOp Add_106 2 1 360_splitncnn_0 368 369
Split splitncnn_8 1 2 369 369_splitncnn_0 369_splitncnn_1
Convolution Conv_107 1 1 369_splitncnn_1 372 0=144 1=1 5=1 6=3456 8=102 9=1
ConvolutionDepthWise Conv_110 1 1 372 375 0=144 1=3 4=1 5=1 6=1296 7=144 8=101 9=1
Convolution Conv_113 1 1 375 377 0=24 1=1 5=1 6=3456 8=2
BinaryOp Add_115 2 1 369_splitncnn_0 377 378
Convolution Conv_116 1 1 378 381 0=144 1=1 5=1 6=3456 8=102 9=1
ConvolutionDepthWise Conv_119 1 1 381 384 0=144 1=3 4=1 5=1 6=1296 7=144 8=101 9=1
Convolution Conv_122 1 1 384 386 0=32 1=1 5=1 6=4608 8=102
Convolution Conv_124 1 1 386 387 0=42 1=1 5=1 6=1344 8=2
Reshape Reshape_138 1 1 387 405 0=-1 1=7 2=6
Permute Transpose_139 1 1 405 output 0=1

2g32fytz

2g32fytz1#

试了下这个模型,没有复现crash
请提供更多的信息:cpu型号,输入图的尺寸

unftdfkk

unftdfkk2#

试了下这个模型,没有复现crash
请提供更多的信息:cpu型号,输入图的尺寸

1、cpu试过骁龙870和麒麟990,都闪退;
2、输入宽x高是256x144;
3、在切换运行量化模型上只多做了这个设置:Net->opt.use_int8_inference= true,是否在Android上需要做其它设置呢?

mo49yndu

mo49yndu3#

使用以下测试,qcom810 qcom865 无法复现
尝试更新今天最新的代码,以及提供最小可复现问题的程序代码

int main(int argc, char** argv)
{
    ncnn::Net net;
    net.load_param("bug2.param");
    net.load_model("bug2.bin");

    ncnn::Extractor ex = net.create_extractor();

    ncnn::Mat in(256, 144, 3);
    in.fill(1.f);
    ex.input("images", in);

    ncnn::Mat out0;
    ex.extract("output", out0);

    fprintf(stderr, "%d %d %d %d\n", out0.dims, out0.w, out0.h, out0.c);

    return 0;
}
ars1skjm

ars1skjm4#

1、发现问题在.bin导入上,报错如下(8月11日使用了最新的代码)
W/ncnn: ModelBin read weight_data failed 372
layer load_model 50 failed

2、同样的.bin在win10上是可以导入并运行的
3、下面是模型的param和bin,麻烦大佬再帮看看,十分感谢!
int8Model.zip

hgc7kmma

hgc7kmma5#

从源码上看,flag_struct.tag没有读到int8,请问在使用ncnn时怎么设置为读取int8模型呢?

vyu0f0g1

vyu0f0g16#

可能是因为量化工具和ncnn库版本不匹配导致的

相关问题