主题中讨论的其他器件:AM69A、AM68A
工具与软件:
我正在更新设置以使用 SDK 10 (链接:www.ti.com/.../10.00.00.08)。 我有一个模型、我在 SDK 9.2和 TIDL 发行版09_02_06_00下编译。 该示例在主机以及 AM68-SK 上按预期运行。 我使用 onnxrt_ep.py 来验证基线推理是否有效。 它还与 gstreamer 插件配合工作。
如果我为 SDK 10和 TIDL 发行版10_00_06_00编译模型、它会在主机上按预期运行。 当我尝试在 AM68-SK 上运行它时、onnxrt_ep.py 会无限期地挂起、我不确定原因。
说明和意见:
-我在 TIDL 版本之间使用完全相同的 ONNX 模型。
-该模型是基于 ConvNeXT 的语义分割模型。
-我已经能够根据 TIDL 09_02_09_00编译模型,一切都按预期运行。
-我已经尝试编译它与 TIDL 10_00_02_00,这也挂起。
-我已经验证我的 SDK 10 TIDL 模型构建看起来是有效的。 为了进行完整性检查、我已经根据10_00_06_00在主机上构建了 od-8220_onnxrt_coco_edgeai-mmdet_yolox_s_lite_640x640_20220221_model_onnx、并将其部署到目标。 运行的示例。
-模型的 tempDir/runtimes_visualization.svg 文件在 SDK 9.2和 SDK 10版本之间在视觉上是相同的。
- tempDir/..._net.bin.svg 文件不同。 SDK 10版本 包括插入的 BatchNorm 层、位于第一个 conv 层之前(ONNX 模型没有此层)。 此外、在深入 hang 之前我没有注意到这一点、但 TIDL 09_02_06_00版本缺少一个 BatchNorm 层、而 ONNX 模型在后续的一个层中定义了这个层。 此 BatchNorm 层位于 SDK 10的..._net.bin.svg 文件中。
-`m我在` odel_configs.py 中设置'debug_level':3 ,当它在 SDK 10上运行挂起时,我会看到以下内容:
************ TIDL_subgraphRtCreate done ************ Iteration: 0 ******* In TIDL_subgraphRtInvoke ********
"迭代:0"是我添加到 onnxrt_ep.py 中的调试打印。
-当它挂起时,我可以按 Ctrl-Z 并返回到控制台提示符。 不过、此时我需要重新启动板。 如果我尝试遵循挂起、运行我确认有效的模型(od-8220_onnxrt_coco_edgeai-mmdet_yolox_s_lite_640x640_20220221_model_onnx)、则该问题太多了。 重新引导将清除此状态。
-为了提高模型的准确性,我已经 通过"advanced_options:output_feature_16bit_names_list"为16位配置了我的第一个 conv 层。 模型的其余部分为8位。 以下是我使用的配置:
'ss-ort-800k-model-f1-pre-and-post' : { 'model_path' : '/home/root/projects/edgeai-tidl-tools/models/public/800k_model_f1_pre_and_post.onnx', 'mean': [0, 0, 0], 'scale' : [1.0, 1.0, 1.0], 'num_images' : numImages, 'calib_images' : '/home/root/calib_data/png_files/*.png', 'num_classes': 5, 'session_name' : 'onnxrt' , 'model_type': 'seg', 'accuracy_level': 1, 'optional_options' : { 'tensor_bits' : 8, 'advanced_options:quantization_scale_type': 4, 'advanced_options:calibration_frames':20, 'advanced_options:output_feature_16bit_names_list':'/backbone/0/0/Conv_output_0' }, },
有什么想法、为什么在 SDK 10下适用于 SDK 9时、事情会挂起?
该编译提到了"C7x 固件版本" 10_00_02_00兼容性。 如何确认我在电路板上安装的固件版本? 虽然,如果有一个不匹配,我会认为 OD-8220 ... 模型在 SDK10下无法正常工作、但它确实可以。