TensorFlow Lite调用MicroInterpreter前为何需定义MicroMutableOpResolver或AllOpsResolver
TFLite Micro MicroMutableOpResolver 作用说明
- 首先纠正认知误区:你导出的模型C dump文件包含完整的模型结构、算子配置参数、权重偏置等所有模型相关信息,并非仅存储权重。
MicroMutableOpResolver的核心作用是算子实现注册,和模型本身存储的内容无关:TFLite Micro面向内存、固件空间极度受限的微控制器场景设计,默认不会将所有TFLite支持的算子实现都编译进最终固件,你需要通过Resolver明确告知运行时,当前模型用到的算子对应的内核实现入口地址,运行时解析模型结构读取到对应算子时,才能找到对应的执行代码完成运算。- 举个简单例子:如果你的模型用到了二维卷积算子,C dump文件中只会存储该卷积的步长、填充规则、分组数等配置参数,不会包含卷积运算的具体实现代码,这部分代码属于TFLite Micro内核组件,你需要通过Resolver的
AddConv2D()方法注册该算子的实现,运行时才能正常调用对应的运算函数。 - 如果未注册模型用到的对应算子,运行时解析模型阶段会直接返回算子未找到的错误,即便模型结构完全正确也无法正常执行。
内容的提问来源于stack exchange,提问作者Pratyush Nandi
相关产品推荐
相关产品推荐

