Paddle-Lite icon indicating copy to clipboard operation
Paddle-Lite copied to clipboard

This model is not supported, because 1 ops are not supported on 'arm'. These unsupported ops are: 'moving_average_abs_max_scale

Open feifaxiaoming opened this issue 2 years ago • 16 comments

我使用的paddlepaddle -gpu ==2.2.0 paddlelite = 2.10rc 模型是使用的paddlecls中的识别模型 在使用https://github.com/PaddlePaddle/PaddleClas/blob/deploy_v2/docs/zh_CN/advanced_tutorials/gallery2fc.md 这个是在paddlecls developv2中转换的。因为2.3relase中报错。 这个将识别模型转换之后,使用paddlelite转成nb模型的时候报错。 使用的命令: paddle_lite_opt --model_file=./interface/rec.pdmodel --param_file=./interface/rec.pdiparams --optimize_out_type=naive_buffer --optimize_out=./interface/rec_nb --valid_targets=arm

运行上述命令之后报错。 Error: This model is not supported, because 1 ops are not supported on 'arm'. These unsupported ops are: 'moving_average_abs_max_scale'.

打印op之后发现下列有下列op:

paddle_lite_opt --model_file=./interface/rec.pdmodel --param_file=./interface/rec.pdiparams --optimize_out_type=naive_buffer --optimize_out=./interface/rec_nb --valid_targets=arm --print_model_ops=true --quant_type=QUANT_INT8 OPs in the input model include: OP_name kARM kHost batch_norm Y
conv2d Y
depthwise_conv2d Y
dropout Y
elementwise_add Y
elementwise_div Y
elementwise_max Y
elementwise_mul Y
fake_channel_wise_quantize_dequantize_abs_max
fake_quantize_dequantize_moving_average_abs_max
feed Y fetch Y fill_constant Y flatten_contiguous_range Y hard_sigmoid Y Y hard_swish Y Y matmul_v2 Y
p_norm Y pool2d Y
relu Y Y Error: This model is not supported, because 1 ops are not supported on 'arm'. These unsupported ops are: 'moving_average_abs_max_scale'. Aborted

请问可以帮忙确认一下是什么问题吗?

feifaxiaoming avatar May 18 '22 03:05 feifaxiaoming

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网文档常见问题历史Issue来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQ and Github Issue to get the answer.Have a nice day!

paddle-bot-old[bot] avatar May 18 '22 03:05 paddle-bot-old[bot]

从出错的信息来看,你的原始模型就是量化模型吧?可以直接用下面命令转模型就行了:

paddle_lite_opt --model_file=./interface/rec.pdmodel --param_file=./interface/rec.pdiparams --optimize_out_type=naive_buffer --optimize_out=./interface/rec_nb --valid_targets=arm

hong19860320 avatar May 18 '22 04:05 hong19860320

不行啊 ,那里面需要有一步是把图片转换到模型中,所以的需要用预训练模型转换一下。转换完了之后,在转nb模型的时候,就出错了。

feifaxiaoming avatar May 18 '22 04:05 feifaxiaoming

从出错的信息来看,你的原始模型就是量化模型吧?可以直接用下面命令转模型就行了:

paddle_lite_opt --model_file=./interface/rec.pdmodel --param_file=./interface/rec.pdiparams --optimize_out_type=naive_buffer --optimize_out=./interface/rec_nb --valid_targets=arm

不行啊 ,那里面已经写了,需要进行转换,需要将图片信息转换成label,加入到模型中。

feifaxiaoming avatar May 18 '22 04:05 feifaxiaoming

image 你可以把文档这一步生成的模型上传上来,我看看

hong19860320 avatar May 18 '22 04:05 hong19860320

这上面我的模型穿不上上来,我点击下方添加附件。

rec.zip 那个最大的文件rec.pdiparams 传不上来,太大了

feifaxiaoming avatar May 18 '22 04:05 feifaxiaoming

image 你可以把文档这一步生成的模型上传上来,我看看

rec.zip 那个最大的文件rec.pdiparams 传不上来,太大了

feifaxiaoming avatar May 18 '22 04:05 feifaxiaoming

image 你可以把文档这一步生成的模型上传上来,我看看

https://pan.baidu.com/s/19ra8lMFJFq4Gd5Za9MPVdw
密码:tqjy

我将文件放在这个网盘中了

feifaxiaoming avatar May 18 '22 04:05 feifaxiaoming

基于修改后的 rec.model 和 PR #9039 可以将原来的模型跑起来了,总结起来有三个问题:

  1. 你导出的模型中 flatten_contiguous_range 缺少 XShape 输出,你可以尝试用最新的 Paddle 重新导出模型试试,当然可以利用我们的这个脚本 modify_model.py.zip 手动修改下 rec.model,在 flatten_contiguous_range 的输出手动插入一个XShape的输出。 image

  2. PaddleSlim 导出的模型错误的在输出 tensor 加入了 moving_average_abs_max_scale 算子 @wanghaoshuang 关注下,可以利用我们的这个脚本 split_model.py.zip 将这三个moving_average_abs_max_scale 算子裁掉, image

  3. Paddle Lite ARM CPU 的matmul_v2 kernel 存在问题,已提 PR #9039 修复 @chenjiaoAngel 关注下

hong19860320 avatar May 18 '22 10:05 hong19860320

修改后的 rec.pdmodel rec.pdmodel.zip

hong19860320 avatar May 18 '22 10:05 hong19860320

@yghstill 辛苦看下‘moving_average_abs_max_scale’没有被删除的问题?是不是在哪个版本修复过?

wanghaoshuang avatar May 18 '22 11:05 wanghaoshuang

基于修改后的 rec.model 和 PR #9039 可以将原来的模型跑起来了,总结起来有三个问题:

  1. 你导出的模型中 flatten_contiguous_range 缺少 XShape 输出,你可以尝试用最新的 Paddle 重新导出模型试试,当然可以利用我们的这个脚本 modify_model.py.zip 手动修改下 rec.model,在 flatten_contiguous_range 的输出手动插入一个XShape的输出。
image
  1. PaddleSlim 导出的模型错误的在输出 tensor 加入了 moving_average_abs_max_scale 算子 @wanghaoshuang 关注下,可以利用我们的这个脚本 split_model.py.zip 将这三个moving_average_abs_max_scale 算子裁掉,
image
  1. Paddle Lite ARM CPU 的matmul_v2 kernel 存在问题,已提 PR [ARM] Fix the wrong calculation of k value in matmul_v2 #9039 修复 @chenjiaoAngel 关注下

这个1和2需要同时修改,才能转换吗,修改之后,转换的模型,能正常使用吗?

feifaxiaoming avatar May 19 '22 02:05 feifaxiaoming

修改后的 rec.pdmodel rec.pdmodel.zip

使用您提供的这个rec.pdmodel之后报错 paddle_lite_opt --model_file=./interface/recdrink/rec.pdmodel --param_file=./interface/recdrink/rec.pdiparams --optimize_out_type=naive_buffer --optimize_out=./interface/rec_nb --valid_targets=arm Loading topology data from ./interface/recdrink/rec.pdmodel Loading params data from ./interface/recdrink/rec.pdiparams [F 5/19 10:53: 1.401 ...e-Lite/lite/model_parser/model_parser.cc:116 LoadCombinedParamsPb] Check failed: reader->ReachEnd(): You are not allowed to load partial data via LoadCombinedParamsPb, use LoadParam instead. Aborted

feifaxiaoming avatar May 19 '22 02:05 feifaxiaoming

缺少了rec.pdiparams ,直接用你之前的就可以,只是修改rec.pdmodel

hong19860320 avatar May 19 '22 08:05 hong19860320

基于修改后的 rec.model 和 PR #9039 可以将原来的模型跑起来了,总结起来有三个问题:

  1. 你导出的模型中 flatten_contiguous_range 缺少 XShape 输出,你可以尝试用最新的 Paddle 重新导出模型试试,当然可以利用我们的这个脚本 modify_model.py.zip 手动修改下 rec.model,在 flatten_contiguous_range 的输出手动插入一个XShape的输出。
image
  1. PaddleSlim 导出的模型错误的在输出 tensor 加入了 moving_average_abs_max_scale 算子 @wanghaoshuang 关注下,可以利用我们的这个脚本 split_model.py.zip 将这三个moving_average_abs_max_scale 算子裁掉,
image
  1. Paddle Lite ARM CPU 的matmul_v2 kernel 存在问题,已提 PR [ARM] Fix the wrong calculation of k value in matmul_v2 #9039 修复 @chenjiaoAngel 关注下

这个1和2需要同时修改,才能转换吗,修改之后,转换的模型,能正常使用吗?

是的,1和2需要同时修改的,基于最新的 develop 分支编译出的库才能正常跑通

hong19860320 avatar May 20 '22 02:05 hong19860320

https://github.com/PaddlePaddle/Paddle-Lite/issues/9266#issue-1309977645 @hong19860320 麻烦您帮我看下这个问题,跟这个差不多

SunYF-0729 avatar Jul 19 '22 20:07 SunYF-0729