新闻详情

新闻详情

首页 / 资讯中心 / 详情

TFLM_day5

发布时间:2026/9/29 7:31:42来源:尧图网络
TFLM_day5
轻松学习 TFLM Day 5:找出当前模型需要注册哪些 op摘要:本文解决 TFLM 开发中的一个实际问题——拿到.tflite模型后,如何在MicroOpResolver里注册所需的 op。文章先给出常用模型的 op 注册结论,再讲解.tflite中 op 信息的存储结构(operator_codes与operators[].opcode_index),并提供了两种解析脚本(基于flatbuffers官方库和纯标准库手写解析)。最后总结了 builtin/custom op 的区别、MicroMutableOpResolverN中 N 的选取规则,以及排查Missing registration的完整流程,帮助读者快速定位并解决 op 注册问题。Day 2 我们知道 TFLM 执行模型时,会通过MicroOpResolver找到每个算子的 kernel。Day 3 和 Day 4 又讲了怎么写和组织自定义优化 kernel。今天解决一个非常实际的问题:我手里有一个 .tflite 模型,到底要在 resolver 里 Add 哪些 op?这件事很重要。注册少了,运行时报错;注册多了,固件变大。TFLM 的风格是“模型用什么,我就注册什么”。1. 结论先行:常用模型需要注册哪些 op我对当前仓库里的主要.tflite模型做了本地解析。下面是常用模型结果。1.1 hello_world模型:tensorflow/lite/micro/examples/hello_world/models/hello_world_float.tflite tensorflow/lite/micro/examples/hello_world/models/hello_world_int8.tflite python/tflite_micro/sine_float.tflite需要的 op:FULLY_CONNECTED最小 resolver:tflite::MicroMutableOpResolver1resolver;resolver.AddFullyConnected();说明:虽然模型里有 3 个 operator,但都是同一种 op,所以只注册一次FULLY_CONNECTED。1.2 simple_add_model模型:tensorflow/lite/micro/examples/memory_footprint/models/simple_add_model.tflite tensorflow/lite/micro/python/tflite_size/tests/simple_add_model.tflite需要的 op:ADD最小 resolver:tflite::MicroMutableOpResolver1resolver;resolver.AddAdd();1.3 micro_speech_quantized模型:tensorflow/lite/micro/examples/micro_speech/models/micro_speech_quantized.tflite需要的 op:DEPTHWISE_CONV_2D FULLY_CONNECTED RESHAPE SOFTMAX最小 resolver:tflite::MicroMutableOpResolver4resolver;resolver.AddDepthwiseConv2D();resolver.AddFullyConnected();resolver.AddReshape();resolver.AddSoftmax();1.4 micro_speech audio_preprocessor_float模型:tensorflow/lite/micro/examples/micro_speech/models/audio_preprocessor_float.tflite需要的 op:CAST CONCATENATION CUSTOM:SignalEnergy CUSTOM:SignalFftAutoScale CUSTOM:SignalFilterBank CUSTOM:SignalFilterBankLog CUSTOM:SignalFilterBankSpectralSubtraction CUSTOM:SignalFilterBankSquareRoot CUSTOM:SignalPCAN CUSTOM:SignalRfft CUSTOM:SignalWindow MUL RESHAPE STRIDED_SLICE最小 resolver:tflite::MicroMutableOpResolver14resolver;resolver.AddCast();resolver.AddConcatenation();resolver.AddEnergy();resolver.AddFftAutoScale();resolver.AddFilterBank();resolver.AddFilterBankLog();resolver.AddFilterBankSpectralSubtraction();resolver.AddFilterBankSquareRoot();resolver.AddPCAN();resolver.AddRfft();resolver.AddWindow();resolver.AddMul();resolver.AddReshape();resolver.AddStridedSlice();这些Signal*都是 TFLM signal custom op,注册函数在:tensorflow/lite/micro/micro_mutable_op_resolver.h signal/micro/kernels/1.5 micro_speech audio_preprocessor_int8模型:tensorflow/lite/micro/examples/micro_speech/models/audio_preprocessor_int8.tflite需要的 op:ADD CAST CONCATENATION CUSTOM:SignalEnergy CUSTOM:SignalFftAutoScale CUSTOM:SignalFilterBank CUSTOM:SignalFilterBankLog CUSTOM:SignalFilterBankSpectralSubtraction CUSTOM:SignalFilterBankSquareRoot CUSTOM:SignalPCAN CUSTOM:SignalRfft CUSTOM:SignalWindow DIV MAXIMUM MINIMUM MUL RESHAPE STRIDED_SLICE最小 resolver:tflite::MicroMutableOpResolver18resolver;resolver.AddAdd();resolver.AddCast();resolver.AddConcatenation();resolver.AddEnergy();resolver.AddFftAutoScale();resolver.AddFilterBank();resolver.AddFilterBankLog();resolver.AddFilterBankSpectralSubtraction();resolver.AddFilterBankSquareRoot();resolver.AddPCAN();resolver.AddRfft();resolver.AddWindow();resolver.AddDiv();resolver.AddMaximum();resolver.AddMinimum();resolver.AddMul();resolver.AddReshape();resolver.AddStridedSlice();1.6 keyword_scrambled模型:tensorflow/lite/micro/models/keyword_scrambled.tflite tensorflow/lite/micro/models/keyword_scrambled_8bit.tflite需要的 op:FULLY_CONNECTED QUANTIZE SOFTMAX SVDF最小 resolver:tflite::MicroMutableOpResolver4resolver;resolver.AddFullyConnected();resolver.AddQuantize();resolver.AddSoftmax();resolver.AddSvdf();1.7 person_detect模型:tensorflow/lite/micro/models/person_detect.tflite需要的 op:AVERAGE_POOL_2D CONV_2D DEPTHWISE_CONV_2D RESHAPE SOFTMAX最小 resolver:tflite::MicroMutableOpResolver5resolver;resolver.AddAveragePool2D();resolver.AddConv2D();resolver.AddDepthwiseConv2D();resolver.AddReshape();resolver.AddSoftmax();这个模型很适合 AI 芯片后端验证,因为CONV_2D和DEPTHWISE_CONV_2D是常见加速重点。1.8 person_detect_vela模型:tensorflow/lite/micro/models/person_detect_vela.tflite需要的 op:CUSTOM:ethos-u最小 resolver:tflite::MicroMutableOpResolver1resolver;resolver.AddEthosU();说明:这个模型已经被 Vela 处理成 Ethos-U custom op,TFLM 看到的是一个 custom op,而不是普通的CONV_2D、DEPTHWISE_CONV_2D列表。1.9 mnist_lstm模型:tensorflow/lite/micro/examples/mnist_lstm/trained_lstm.tflite tensorflow/lite/micro/examples/mnist_lstm/trained_lstm_int8.tflite需要的 op:FULLY_CONNECTED RESHAPE SOFTMAX UNIDIRECTIONAL_SEQUENCE_LSTM最小 resolver:tflite::MicroMutableOpResolver4resolver;resolver.AddFullyConnected();resolver.AddReshape();resolver.AddSoftmax();resolver.AddUnidirectionalSequenceLSTM();1.10 dtln_noise_suppression模型:tensorflow/lite/micro/examples/dtln/dtln_noise_suppression.tflite需要的 op:FULLY_CONNECTED LOGISTIC UNIDIRECTIONAL_SEQUENCE_LSTM最小 resolver:tflite::MicroMutableOpResolver3res
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ClickHouse JSON处理实战:从JSON字段类型到JSONExtract函数与性能调优 2026/9/29 8:21:15

ClickHouse JSON处理实战:从JSON字段类型到JSONExtract函数与性能调优

1. 为什么我会在ClickHouse里认真对待JSON:类型选择的现实考量1.1 String存JSON的老姿势为什么不够用很多人最开始接触ClickHouse里的JSON,都是同一套做法:建表时用一个String类型字段,把整段JSON文本往里一塞,查询的时…

阅读更多 →
Vibe Coding 从 0 到 1 打造 AI 产品:TaoToken 统一 Key 接入 Next.js + Supabase + Vercel 上线一个月复盘 2026/9/29 8:21:15

Vibe Coding 从 0 到 1 打造 AI 产品:TaoToken 统一 Key 接入 Next.js + Supabase + Vercel 上线一个月复盘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GNSS高程拟合实战:模型+少量水准点实现正常高转换 2026/9/29 8:21:09

GNSS高程拟合实战:模型+少量水准点实现正常高转换

1. 这个项目到底在解决什么问题——从一次踩坑说起先说个实际场景。前两年我接了一个市政道路控制测量的活,测区不大,大概十几平方公里,按照测绘规范要求,所有控制点都要提供正常高(也就是海拔高)。按传统做…

阅读更多 →
用微信小程序破解木材厂管理困局:考勤计件排班系统实战 2026/9/29 8:21:09

用微信小程序破解木材厂管理困局:考勤计件排班系统实战

车间里锯末还没落干净,老周的排班表又让风吹到机器底下去了。我去他木材厂转了圈,墙上贴着A4纸手写排班,桌上的记工本翻得卷了边,月底算计件工资三个人对账对到晚上十点。他说想上一套系统,但厂里四五十号工人&#xf…

阅读更多 →
Qwen3.8 解读:2.4T 开源 MoE 的编码能力,离 Fable 5 还有多远? 2026/9/29 8:21:08

Qwen3.8 解读:2.4T 开源 MoE 的编码能力,离 Fable 5 还有多远?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Windows服务器自建轻量网盘:filebrowser部署与运维实战 2026/9/29 8:21:01

Windows服务器自建轻量网盘:filebrowser部署与运维实战

如果你手头有一台Windows服务器,闲置的盘符里堆着各种文件,想给同事、家人或者自己搞一个能随时上传下载、能分享链接的私人网盘,同时又不想碰那些动辄占用几百MB内存、配置起来要折腾数据库和PHP环境的重型方案——那filebrowser这个工具&am…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉