首页 Paddle框架 帖子详情
请问在Windows环境下训练的模型可以在Linux直接使用吗?
收藏
快速回复
Paddle框架 问答模型训练 343 0
请问在Windows环境下训练的模型可以在Linux直接使用吗?
收藏
快速回复
Paddle框架 问答模型训练 343 0

最近编译了一个Linxu预测库, 但是将Windows中已经训练好的模型移植过去使用出现了错误:

terminate called after throwing an instance of 'paddle::platform::EnforceNotMet'
  what():  

  Compile Traceback (most recent call last):
    File "tools/export_model.py", line 113, in 
      main()
    File "tools/export_model.py", line 109, in main
      run(FLAGS, cfg)
    File "tools/export_model.py", line 77, in run
      trainer.export(FLAGS.output_dir)
    File "E:\paddle\PaddleDetection\ppdet\engine\trainer.py", line 574, in export
      input_spec, static_model.forward.main_program,
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 534, in main_program
      concrete_program = self.concrete_program
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 454, in concrete_program
      return self.concrete_program_specify_input_spec(input_spec=None)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 488, in concrete_program_specify_input_spec
      *desired_input_spec)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 402, in get_concrete_program
      concrete_program, partial_program_layer = self._program_cache[cache_key]
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 711, in __getitem__
      self._caches[item] = self._build_once(item)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 702, in _build_once
      class_instance=cache_key.class_instance)
    File "", line 2, in from_func_spec
      
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\wrapped_decorator.py", line 25, in __impl__
      return wrapped_func(*args, **kwargs)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\base.py", line 40, in __impl__
      return func(*args, **kwargs)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\program_translator.py", line 652, in from_func_spec
      outputs = static_func(*inputs)
    File "C:\Users\ADMINI~1\AppData\Local\Temp\tmpahswjvev.py", line 27, in forward
      false_fn_1, (), (), (out,))
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 210, in convert_ifelse
      return _run_py_ifelse(pred, true_fn, false_fn, true_args, false_args)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 235, in _run_py_ifelse
      return true_fn(*true_args) if pred else false_fn(*false_args)
    File "E:\paddle\PaddleDetection\ppdet\modeling\architectures\meta_arch.py", line 28, in forward
      out = self.get_pred()
    File "E:\paddle\PaddleDetection\ppdet\modeling\architectures\faster_rcnn.py", line 104, in get_pred
      bbox_pred, bbox_num = self._forward()
    File "C:\Users\ADMINI~1\AppData\Local\Temp\tmplf_jv8zy.py", line 54, in _forward
      rois, rois_num))
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 210, in convert_ifelse
      return _run_py_ifelse(pred, true_fn, false_fn, true_args, false_args)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 235, in _run_py_ifelse
      return true_fn(*true_args) if pred else false_fn(*false_args)
    File "E:\paddle\PaddleDetection\ppdet\modeling\architectures\faster_rcnn.py", line 87, in _forward
      im_shape, scale_factor)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\layers.py", line 898, in __call__
      outputs = self.forward(*inputs, **kwargs)
    File "C:\Users\ADMINI~1\AppData\Local\Temp\tmpw1yik1pb.py", line 38, in forward
      bbox_num, bbox_pred))
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 210, in convert_ifelse
      return _run_py_ifelse(pred, true_fn, false_fn, true_args, false_args)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 235, in _run_py_ifelse
      return true_fn(*true_args) if pred else false_fn(*false_args)
    File "E:\paddle\PaddleDetection\ppdet\modeling\post_process.py", line 67, in forward
      bboxes, score = self.decode(head_out, rois, im_shape, scale_factor)
    File "C:\Users\ADMINI~1\AppData\Local\Temp\tmp2gw6dwns.py", line 42, in __call__
      origin_shape_list, rois_num])
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 42, in convert_while_loop
      loop_vars = _run_paddle_while_loop(cond, body, loop_vars)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\dygraph\dygraph_to_static\convert_operators.py", line 52, in _run_paddle_while_loop
      loop_vars = control_flow.while_loop(cond, body, loop_vars)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\layers\control_flow.py", line 1221, in while_loop
      output_vars = body(*loop_vars)
    File "E:\paddle\PaddleDetection\ppdet\modeling\layers.py", line 399, in __call__
      [rois_num_per_im, 2])
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\tensor\manipulation.py", line 1490, in expand
      type='expand_v2', inputs=inputs, outputs={'Out': out}, attrs=attrs)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\layer_helper.py", line 43, in append_op
      return self.main_program.current_block().append_op(*args, **kwargs)
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\framework.py", line 3232, in append_op
      attrs=kwargs.get("attrs", None))
    File "D:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\paddle\fluid\framework.py", line 2312, in __init__
      for frame in traceback.extract_stack():

--------------------------------------
C++ Traceback (most recent call last):
--------------------------------------
0   paddle::AnalysisPredictor::ZeroCopyRun()
1   paddle::framework::NaiveExecutor::Run()
2   paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, paddle::platform::Place const&)
3   paddle::operators::WhileOp::RunImpl(paddle::framework::Scope const&, paddle::platform::Place const&) const
4   paddle::framework::Executor::RunPreparedContext(paddle::framework::ExecutorPrepareContext*, paddle::framework::Scope*, bool, bool, bool)
5   paddle::framework::Executor::RunPartialPreparedContext(paddle::framework::ExecutorPrepareContext*, paddle::framework::Scope*, long, long, bool, bool, bool)
6   paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, paddle::platform::Place const&)
7   paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, paddle::platform::Place const&) const
8   paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, paddle::platform::Place const&, paddle::framework::RuntimeContext*) const
9   paddle::operators::ExpandV2Op::InferShape(paddle::framework::InferShapeContext*) const
10  paddle::platform::EnforceNotMet::EnforceNotMet(paddle::platform::ErrorSummary const&, char const*, int)
11  paddle::platform::GetCurrentTraceBackString()

----------------------
Error Message Summary:
----------------------
InvalidArgumentError: The 0th element of 'shape' for expand_v2 op must be greater than 0, but the value given is -2.
  [Hint: Expected expand_shape[i] > 0, but received expand_shape[i]:-2 <= 0:0.] (at /home/quenwaz/downloads/Paddle/paddle/fluid/operators/expand_v2_op.cc:75)
  [operator < expand_v2 > error]
Aborted

 

所以我怀疑是不是模型的问题, 还是源码本身存在问题。

我的模型训练是在Windows 10上基于PaddleDetection的python版本训练的。 后来在Linux CentOS 7.5中编译了Paddle Interface,基于GCC4.8.5。 好不容易编译完了整个PaddleDetection, 在调用main的时候报错如上。 怀疑人生。求解。

0
收藏
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户