Skip to content

3.3.1版本QueuedPaddleOcrAll使用Mkldnn推理时报错 #184

Description

@MooWeii

Describe the bug

初始化使用的

FullOcrModel OcrModel = LocalFullModels.EnglishV5;
SysExt.OcrEngine = new QueuedPaddleOcrAll(() =>
{
    return new PaddleOcrAll(OcrModel, PaddleDevice.Mkldnn())
    {
        AllowRotateDetection = true, 
        Enable180Classification = true, 
        
    };
});

private async Task<PaddleOcrResult?> OcrCharPredict(Mat rawMat, bool isEnable)
{
    try
    {
        if (SysExt.OcrEngine != null && isEnable)
        {
            var predicted = await SysExt.OcrEngine.Run(rawMat);//只要一Run等待就报错
            return predicted;
        }
        else
        {
            return null;
        }
    }
    catch (Exception ex)
    {
        return null;
    }
}

报错内容如下

引发的异常:“System.InvalidOperationException”(位于 System.Private.CoreLib.dll 中)
Running predictor failed with Paddle status code 2: 

  Compile Traceback (most recent call last):
    File "tools/export_model.py", line 74, in <module>
      main()
    File "tools/export_model.py", line 69, in main
      paddle.jit.save(model, save_path)
    File "<decorator-gen-60>", line 2, in save
      
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
      return wrapped_func(*args, **kwargs)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/base.py", line 38, in __impl__
      return func(*args, **kwargs)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/jit.py", line 680, in save
      concrete_program = static_func.concrete_program
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 461, in concrete_program
      concrete_program, _ = self.get_concrete_program(*input_spec)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 401, in get_concrete_program
      concrete_program, partial_program_layer = self._program_cache[cache_key]
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 684, in __getitem__
      self._caches[item] = self._build_once(item)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 675, in _build_once
      class_instance=cache_key.class_instance)
    File "<decorator-gen-58>", line 2, in from_func_spec
      
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
      return wrapped_func(*args, **kwargs)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/base.py", line 38, in __impl__
      return func(*args, **kwargs)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/dygraph_to_static/program_translator.py", line 625, in from_func_spec
      outputs = static_func(*inputs)
    File "/home/zhoujun20/dygraph/PaddleOCR_rc/ppocr/modeling/architectures/base_model.py", line 74, in forward
      x = self.backbone(x)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/layers.py", line 884, in __call__
      outputs = self.forward(*inputs, **kwargs)
    File "/home/zhoujun20/dygraph/PaddleOCR_rc/ppocr/modeling/backbones/rec_mobilenet_v3.py", line 134, in forward
      x = self.conv1(x)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/layers.py", line 884, in __call__
      outputs = self.forward(*inputs, **kwargs)
    File "/home/zhoujun20/dygraph/PaddleOCR_rc/ppocr/modeling/backbones/det_mobilenet_v3.py", line 180, in forward
      x = self.conv(x)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/dygraph/layers.py", line 884, in __call__
      outputs = self.forward(*inputs, **kwargs)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/nn/layer/conv.py", line 644, in forward
      use_cudnn=self._use_cudnn)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/nn/functional/conv.py", line 144, in _conv_nd
      type=op_type, inputs=inputs, outputs=outputs, attrs=attrs)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/layer_helper.py", line 43, in append_op
      return self.main_program.current_block().append_op(*args, **kwargs)
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/framework.py", line 2849, in append_op
      attrs=kwargs.get("attrs", None))
    File "/usr/local/python3.5.1/lib/python3.5/site-packages/paddle/fluid/framework.py", line 1934, in __init__
      for frame in traceback.extract_stack():

--------------------------------------
C++ Traceback (most recent call last):
--------------------------------------
0   0x00007FF80EB46360
1   PD_PredictorRun2
2   PD_ConfigXpuDeviceId
3   PD_PredictorRun
4   paddle_infer::UpdateDllFlag
5   paddle::framework::NaiveExecutor::Run
6   paddle::framework::ExecutionContext::OutputVar
7   paddle::framework::OperatorWithKernel::RunImpl
8   paddle::framework::OperatorWithKernel::RunImpl
9   phi::StridedCopyKernel<bool,phi::CPUContext>
10  phi::StridedCopyKernel<bool,phi::CPUContext>
11  phi::StridedCopyKernel<bool,phi::CPUContext>
12  phi::OneDNNContext::GetCachedObjectsNumber
13  phi::DeviceManager::DeviceManager
14  common::enforce::GetCurrentTraceBackString

----------------------
Error Message Summary:
----------------------
NotFoundError: OneDnnContext does not have the input Filter.
  [Hint: Expected it != inputs_name_.end(), but received it == inputs_name_.end().] (at D:\a\PaddleSharp\PaddleSharp\paddle-src\paddle\phi\backends\onednn\onednn_context.cc:345)
  [operator < fused_conv2d > error]

Steps to reproduce the bug

如上

Expected behavior

No response

Screenshots

No response

Release version

No response

IDE

No response

OS version

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions