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.

[参考译文] PROCESSOR-SDK-J784S4:TIDL TopK 的意外索引形状:预期 (1、1、30、1)、GOT (1、4、30、1)

Guru**** 2435020 points
Other Parts Discussed in Thread: AM69A

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1543100/processor-sdk-j784s4-unexpected-indices-shape-from-tidl-topk-expected-1-1-30-1-got-1-4-30-1

部件号:PROCESSOR-SDK-J784S4
主题中讨论的其他器件:AM69A

工具/软件:

您好:

我使用的是包含TopK运算符的 ONNX 模型。 (附件中的模型)我想使用以下参数在 TIDL 上运行该模型:

  • 输入: float32[1、1100、1]
  • K:[30]
  • 轴= 2
  • 最大值= 1
  • 已排序= 1

在这种情况下、输出应如下所示:

  • 值: float32[1、1、30、1]
  • 索引: int64[1,1,30,1]

在运行时,使用 16 位量化我会遇到以下形状不匹配:“ 来自{1、1、30、1}模型的预期形状与输出索引的实际形状{1、2、30、1}不匹配

这些是输出形状:
顶部 K 值形状:(1、1、30、1)
Top-K 指数形状:(1、 2. 、30、1)

我使用的是 SDK  ti-processor-sdk-rtos-j784s4-evm-10_01_00_04

为什么值和指数之间存在形状差异?

您能帮助我解决我的问题吗?

e2e.ti.com/.../topk_5F00_model.zip

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

    尊敬的 Ghassen:

    感谢您提供详细信息。  TopK 存在一个可能相关的待处理问题。  我会检查您是否也受到影响。

    此致、

    Chris

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

    尊敬的 Ghassen:

    这似乎是一个输出问题。  我连接了一个 Jupyter 笔记本,其张量形状为[1,1,10,1],因此更容易理解(100 是许多数字要通过)。  我还附加了脚本,以生成带有[1,1,10,1]张量的 topk 模型。  了解笔记本电脑的唯一要点是、您需要具有可正常工作的 10_01_04_00 环境设置。  

       在 modeldir ='中设置 10_01_04_00 环境 '+version+'/edgeai-tidl-tools/tools/AM69A/tidl_tools /'  (单元 4)。

    必须将输出.bin 文件读取为 32 位值、数据位于 float32 中、索引位于 int32 中。

    索引= np.fromfile(“out/my_data.bin",dtype=np.uint32)“)
    数据= np.fromfile(“out/my_data.bin",dtype=np.float32)“)

    如果您不想使用 Jupyter 笔记本、只需从导入和推理单元格中复制--参数、然后从导入/推理配置文件中运行。

    此致、

    Chris

    e2e.ti.com/.../topk.pye2e.ti.com/.../topk_5F00_model.onnxe2e.ti.com/.../SimpleTopk.ipynb