自己构建的模型转换成inference model时报错 #12309
Unanswered
CharmingHue
asked this question in
Q&A
Replies: 2 comments
-
麻烦问下自己构建的模型和官方的模型差异大吗? |
Beta Was this translation helpful? Give feedback.
0 replies
-
我是自己构建的文本识别编码器,解码器直接用的是CPPD,模型可以正常训练和测试,但是在转inference模型想测试FPS时,会报上面的错误 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
请提供下述完整信息以便快速定位问题/Please provide the following information to quickly locate the problem
系统环境/System Environment:
ubuntu
版本号/Version:
18.04
Paddle:2.4.0 PaddleOCR:
dygraph
问题相关组件/Related components:
export_model.py
运行指令/Command Code:
python3 tools/export_model.py -c configs/rec/rec_cloformer_cppd.yml -o Global.pretrained_model=./pretrain/rec_cloformer_cppd_base/best_accuracy_old.pdparams Global.save_inference_dir=./rec_cloformer_cppd_infer
完整报错/Complete Error Message:
Traceback (most recent call last):
File "tools/export_model.py", line 293, in
main()
File "tools/export_model.py", line 288, in main
export_single_model(
File "tools/export_model.py", line 199, in export_single_model
paddle.jit.save(model, save_path)
File "/root/miniconda3/lib/python3.8/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/wrapped_decorator.py", line 26, in impl
return wrapped_func(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/jit.py", line 649, in wrapper
func(layer, path, input_spec, **configs)
File "/root/miniconda3/lib/python3.8/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/wrapped_decorator.py", line 26, in impl
return wrapped_func(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/base.py", line 67, in impl
return func(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/jit.py", line 927, in save
concrete_program = static_func.concrete_program_specify_input_spec(
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 577, in concrete_program_specify_input_spec
concrete_program, _ = self.get_concrete_program(
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 485, in get_concrete_program
concrete_program, partial_program_layer = self._program_cache[cache_key]
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 955, in getitem
self._caches[item_id] = self._build_once(item)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 939, in build_once
concrete_program = ConcreteProgram.from_func_spec(
File "/root/miniconda3/lib/python3.8/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/wrapped_decorator.py", line 26, in impl
return wrapped_func(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/base.py", line 67, in impl
return func(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 895, in from_func_spec
error_data.raise_new_exception()
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/dygraph_to_static/error.py", line 350, in raise_new_exception
six.exec("raise new_exception from None")
File "", line 1, in
ValueError: In transformed code:
File "/root/PaddleOCR/ppocr/modeling/architectures/base_model.py", line 85, in forward
if self.use_backbone:
File "/root/PaddleOCR/ppocr/modeling/architectures/base_model.py", line 86, in forward
x = self.backbone(x)
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 544, in forward
x = self.forward_feature(x)
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 535, in forward_feature
for layer in self.layers:
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 536, in forward_feature
x = layer(x)
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 418, in forward
for blk in self.blocks:
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 419, in forward
x = blk(x)
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 375, in forward
x = x + self.drop_path(self.attn(self.norm1(x)))
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 314, in forward
for i in range(len(self.kernel_sizes)):
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 317, in forward
res.append(self.high_fre_attntion(x, self.qkvs[i], self.convs[i], self.act_blocks[i]))
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 287, in high_fre_attntion
attn = attn_block(q.multiply(k)).multiply(paddle.to_tensor(self.scalor))
File "/root/PaddleOCR/ppocr/modeling/backbones/rec_cloformer.py", line 234, in forward
return self.act_block(x)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/container.py", line 97, in forward
for layer in self._sub_layers.values():
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/container.py", line 98, in forward
def forward(self, input):
for layer in self._sub_layers.values():
input = layer(input)
~~~~~~~~~~~~~~~~~~~~ <--- HERE
return input
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/layers.py", line 950, in call
return self._dygraph_call_func(*inputs, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/dygraph/layers.py", line 935, in _dygraph_call_func
outputs = self.forward(*inputs, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/nn/layer/conv.py", line 712, in forward
out = F.conv._conv_nd(
File "/root/miniconda3/lib/python3.8/site-packages/paddle/nn/functional/conv.py", line 276, in _conv_nd
helper.append_op(
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/layer_helper.py", line 45, in append_op
return self.main_program.current_block().append_op(*args, **kwargs)
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/framework.py", line 4017, in append_op
op = Operator(
File "/root/miniconda3/lib/python3.8/site-packages/paddle/fluid/framework.py", line 3016, in init
self.desc.infer_shape(self.block.desc)
ValueError: (InvalidArgument) The number of input's channels should be equal to filter's channels * groups for Op(Conv). But received: the input's channels is -1, the input's shape is [-1, -1, 8, 32]; the filter's channels is 64, the filter's shape is [64, 64, 1, 1]; the groups is 1, the data_format is NCHW. The error may come from wrong data_format setting.
[Hint: Expected input_channels == filter_dims[1] * groups, but received input_channels:-1 != filter_dims[1] * groups:64.] (at /paddle/paddle/fluid/operators/conv_op.cc:131)
[operator < conv2d > error]
请尽量不要包含图片在问题中/Please try to not include the image in the issue.
Beta Was this translation helpful? Give feedback.
All reactions