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.

[参考译文] AM69A:avgpool 和 globalavgpool 中内核大小的上限

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1520429/am69a-the-upper-limit-of-kernel-size-in-avgpool-and-globalavgpool

器件型号:AM69A

工具/软件:

使用 onnxrt_ep.py 编译 ONNX 模型时、我收到了此消息
"不支持带跨度(1x1)的内核大小(0x0)"
对于将形状张量(1、16、56、56)转换为(1、16、 1、1)。
但是、对于较小的内核大小、我不会收到此消息。
内核大小是否有上限?

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

    Hi Mitani-san、

    下面是 avgpool 上的信息。

    • 输入应该是可变的。
    • 非单胎变量输入尺寸的数量必须小于<= 4
    • 仅支持默认的扩张值(1、1)
    • 仅支持默认 STORAGE_ORDER = 0
    • 在 GlobalAveragePool 中、对于大于1024的平面大小(高度*宽度)、请使用 tidl-onnx-model-optimizer 中的 convert_large_global_avg_pooling_to_matmul 规则  
    • AveragePool 和 MaxPool 已针对以下内核大小进行了验证:3x3、2x2、1x1、跨度1和跨度2 (水平和垂直尺寸)

    您是否已经厌倦了通过 TIDL ONNX 优化器运行 ONNX 模型?

    https://github.com/TexasInstruments/edgeai-tidl-tools/blob/master/osrt-model-tools/osrt_model_tools/onnx_tools/tidl_onnx_model_optimizer/README.md

    此致、

    Chris

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

    感谢您的及时答复。

    我认为答案是`平面尺寸(高度*宽度)>1024 = 32 * 32'。

    onnxrt_ep.py 文件似乎在调用优化器。 根据自述文件、convert_large_global_avg_pooling_to_matmul 应默认设置为 True、但似乎没有进行转换。  我是否需要明确指示 onnx_ep.py 将选项传递给优化器?

    非常感谢。

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

    Hi Mitani-san、

    是的、但测试完此内容后、优化器、当从 onnxrt_ep.py 调用时、似乎存在一个错误。  对 CONFIG["MODEL_PATH"]的引用不再有效。  它应该是 CONFIG["session"]["model_path"]。  如果没有出现错误、我认为您实际上没有运行优化器(10.1和11.0中就是这种情况)。

    在 onnxrt_ep.py 中、请替换两者之间的行  

    #运行图形优化

    #设置输入图像

    change.txt (随附)

    然后通过以下方式运行:

    python3 ./onnxrt_ep.py -c -o -m  

    启用优化器后、您应该会看到以下行:

    python3 ./onnxrt_ep.py -c -o -m cl-ort-resnet18-v1.
    可用的执行提供程序:['TIDLExecutionProvider '、'TIDLCompilationProvider '、'CPUExecutionProvider ']

    运行1个型号-['cl-ort-resnet18-v1']


    Running_Model : cl-ort-resnet18-v1.

    已启用优化:在通过优化覆盖之前将./../../models/public/resnet18_opset9.onnx 移动到./../../models/public/resnet18_opset9_org.onnx
    [信息]:已启用预处理形状推理
    [INFO ]:[1/26] Convert_expand_to_reconge_and_concat 优化:已禁用
    [info]:[2/26] Convert_neg_to_mul 优化:已禁用
    [info]:[3/26] Remove_diplicate_quantize_desquantize 优化:已禁用
    [info]:[4/26] Remove_quantize_initializer optimization : Disabled
    [info]:[5/26] add_bias_qdq 优化:已禁用
    [INFO ]:[6/26] Convert_unexpression_to_re整 形优化:已禁用
    [info]:[7/26] Convert_instancenorm_to_layernorm 优化:已禁用
    [INFO ]:[8/26] expand_silite_overly_multiple_axis optimization : Disabled
    [info]:[9/26] Convert_conv_7x7_stride4_to_stride1优化:已启用
    [info]:[10/26] Convert_conv_large_pad_to_smaller_kernel 优化:已禁用
    [信息]:[11/26] Push_large_channel_dim_to_height_for_width_wise_softmax 优化:已启用
    [info]:[12/26] Convert_softmax_axi_height_to_width 优化:已启用
    [info]:[13/26] Convert_softmax_axis_channel_to_width 优化:已启用
    [info]:[14/26] Convert_batchnorm_input_to_4D 优化:已启用
    [info]:[15/26] Convert_collect_with_single_index_to_slice optimization : Enabled
    [info]:[16/26] Convert_matmul_to_conv_1x1s1优化:已禁用
    [info]:[17/26] Convert_gemm_to_matmul_and_add 优化:已启用
    [info]:[18/26] Convert_large_global_avg_pooling_to_matmul 优化:已启用
    [info]:[19/26] Push_matmul_channel_in_height 优化:已禁用
    [info]:[20/26] Convert_reduemeane_to_matmul 优化:已禁用
    [info]:[21/26] expand_layernorm_to_component_ops 优化:已禁用
    [info]:[22/26] Convert_maxpool_to_SCASCADED_maxpool 优化:已启用
    [info]:[23/26] Split_batch_dim_to_parallel_input_branches optimization : Disabled
    [info]:[24/26] Convert_concat_axis_width_to_channel 优化:已禁用
    [info]:[25/26] Attention_block_optimization optimization : Disabled
    [info]:[26/26] Convert_resize_params_size_to_SCALE optimization : Enabled
    [信息]:已启用后处理形状推理

    e2e.ti.com/.../0184.change.txt

    此致、

    Chris

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

    正如您所指出的、优化器似乎大多不存在。
    我根据提供的代码修改了 onnxrt_ep.py、并使用-o 选项运行了 onnxrt_ep.py。
    因此,我能够确认输出了类似的消息。

    优化器的问题已经解决、
    但不幸的是、出现了另一个问题(调用:错误:无法打开网络文件)、
    我无法确认执行环境中的效果。
    不过、我现在将关闭此内容。

    非常感谢。

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

    Hi Mitani-san、

    感谢您的答复。  如果在编译过程中出现错误、请检查 ONNX 模型文件的路径。  如果在推理期间发生错误、请查找名为 xxxx_net.bin 的输出文件。

    此致、

    Chris