我们在
STM32F746 评估板(以及许多其他 stm32 评估板)上运行 X-CUBE-AI。我们使用的是 7.1.0、7.2.0 和 7.3.0 版本,并使用为 CubeIDE 生成的源代码。
然后,每当 ai_mnetwork_run() 运行时,我们都会向 GPIO 发送脉冲,这将调用网络的推理运行函数,并且我们使用此 GPIO 脉冲来了解何时测量,例如,
电路板上的电流消耗以测量推理期间的功耗。
无论如何,我的问题是在 aiValida
tion.c 的源代码中,我们看到了一个定义
- #if !defined(USE_OBSERVER)
- #define USE_OBSERVER 0 /* 0: remove the registration of the user CB to evaluate the inference time by layer */
- #endif
- #if defined(USE_OBSERVER) && USE_OBSERVER == 1
- #ifndef HAS_INSPECTOR
- #define HAS_INSPECTOR
- #endif
- #ifdef HAS_INSPECTOR
- #define HAS_OBSERVER
- #endif
- #endif
我们可以在其中删除或不删除 INSPECTOR / OBSERVER,它似乎在观察推理运行以获取统计信息。
这个观察者在推理运行过程中是否增加了额外的时间?还是让推理干净利落地运行,然后再收集有关推理运行的信息?