This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:不支持具有高级索引功能的 TIDL ONNx 图

Guru**** 2390755 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1496965/tda4vm-tidl-onnx-graph-with-advanced-indexing-not-supported

器件型号:TDA4VM

工具/软件:

您好:

我有以下 Pytorch 网络,我转换为 onnx 和它在 CPU 上工作正常:

导入火炬
NeckTorch (torch.nn.Module):
  def __init__(self)
    超级(NeckTorchself)。__init__()
    self.x0 = torch.rand (180、840).long ()
    self.y0 = torch.rand (180、8、40).long ()

  DEF Forward (自我x): #输入形状1128、32、64
    x = x[:、:、self.y0self.x0]
    X = torch.rehenge (x、(1128、80、8、 40))
    x = x.permute (01、3、2、4)。re整 形(110248040)
    返回 x
但是、使用 TIDLCompilationProvider 时、我只得到此误差和单个标量值作为输出:
[W:onnxruntime:、execution_frame.cc:835 VerifyOutputSizes]来自{11024、80、40}模型的预期形状与输出的实际形状{}不匹配
compile_options ={
'tidl_tools_path':os.environ['TIDL_TOOLS_PATH']、
'artifactes_folder': output_dir,
Tensor_bits:16,
'accurity_level': 0,
'advanced_options: calibration_frames': 1,
'advanced_options: calibration_iterations': 1,# used if accurity_level = 1.
'advanced_options: add_data_convert_ops': 1,
'debug_level': 1,
}
我按如下方式运行编译:
SO = RT.SessionOptions()
ep_list =['TIDLCompilationProvider'、'CPUExecutionProvider']
SESS = RT.ConferenceSession (onnx_model_path、provider=ep_list、provider_options=[compile_options、{}]、sess_options_so)
input_details = sess.get_inputs()

output = list (sess.run(None、{input_details[0].name:np.random.rand(1128、32、64).astype (Np.float32)})))[0]
您是否知道如何正确编译这些操作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ben;

    感谢您问这个问题。

    您是否使用过通往 TIDL 的 ONNX 接口流? 如果您有一个用于运行 TIDL (例如 ONNX-Pythone)以进行共享的配置文件、 这会使事情变得更容易。  

    否则、我们无法复制您所做的确切操作。

    谢谢。此致

    Wen Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wen:

    感谢您的回答、我正在使用以下 Python 代码编译模型、这有什么用?

    compile_options =
      'tidl_tools_path':os.environ['TIDL_TOOLS_PATH']、
      'artists_folder''out'
      Tensor_bits16,
      'accurity_level': 1,
      'advanced_options: calibration_frames': 1,
      'advanced_options: calibration_iterations': 3,
      'advanced_options: add_data_convert_ops': 1,
      'debug_level': 1,
    }
    SO = RT.SessionOptions()
    ep_list =['TIDLCompilationProvider''CPUExecutionProvider']
    SESS = RT.ConferenceSession (model.onnxprovider=ep_listprovider_options=[compile_options、{}]、sess_options_so)
    input_details = sess.get_inputs()
    对于 tqdm.trange (num_calib_images)中的 num:
      INPUT_DATA = np.random.rand (112832、64).astype (np.float32)
      输出= list (sess.run(None、{input_details[0].nameinput_data }))[0]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ben;

    感谢您的信息。 我会尝试将您的信息转换为 A 脚本、看看我是否可以编译它。

    此致

    Wen Li