ST意法半导体
直播中

飘逸的D

12年用户 779经验值
私信 关注
[问答]

X-CUBE-AI 7.1.0生成代码初始化错误如何解决呢?

大家好。

我在使用 X-CUBE-AI 7.1.0 版时遇到了问题。
当我加载神经网络的 TFlite 模型并生成代码时,我在初始化输入和输出缓冲区时遇到了问题。特别是我对这个分配有疑问:ai_buffer ai_input[AI_NETWORK_IN_NUM] = AI_NETWORK_IN;

编译器给我一个 AI_NETWORK_IN 宏的问题,它被列为已弃用并返回 ai_buffer*。还有其他人遇到过同样的问题吗?如何解决?

在 5.20.0 版本中,我在初始化方面没有遇到任何问题,并且已经评估了许多不同的示例。


回帖(1)

李舒桀

2022-12-26 16:05:01
我不知道你什么时候使用这个赋值,但现在从 7.x 开始,宏“AI_NETWORK_IN”被映射到一个函数 (ai_network_inputs_get()) 上。现在要在将它们与 ai_network_run() fct 一起使用之前创建 IO 张量的句柄,需要以下典型代码:


  • /* Array of pointer to manage the model's input/output tensors */
  • static ai_buffer *ai_input;
  • static ai_buffer *ai_output;

  • vois aiInit() {
  • ...
  •   /* Reteive pointers to the model's input/output tensors */
  •   ai_input = ai_network_inputs_get(network);
  •   ai_ouput = ai_network_outputs_get(network);
  • ...
  • }

  • /*
  • * Run inference
  • */
  • int aiRun(const void *in_data, void *out_data)  {
  •   
  •   /* 1 - Update IO handlers with the @ of the data payload */
  •   ai_input[0].data = AI_HANDLE_PTR(in_data);
  •   ai_output[0].data = AI_HANDLE_PTR(out_data);

  •   /* 2 - Perform the inference */
  •   n_batch = ai_network_run(network, &ai_input[0], &ai_output[0]);
  •   if (n_batch != 1) {
  •       err = ai_network_get_error(network);
  •       ...
  •   };
  •   ...
  •   return 0;
  • }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分