17 个版本
0.21.6 | 2024 年 7 月 24 日 |
---|---|
0.21.4 | 2024 年 4 月 23 日 |
0.21.2 |
|
0.20.22 | 2023 年 11 月 28 日 |
#931 在 机器学习
每月下载量 183
用于 2 crate
2MB
46K SLoC
tract-tflite
未实现,正在制作香肠。如果您想帮忙,请随时提交 PR。
笔记和相关信息
生成的代码处理从 flatbuffer 表创建模型。目前的主要任务(据我所知)是开始添加从 ModelBuffer 构建 Tract 模型的代码。
因此,modelBuffer(从 flatbuffer 文件读取的模型)有几个值得关注的组件(及其相关函数):operator_codes、subgraphs 和 then buffers。
- subgraphs 可能是创建 tract 模型所需的主要组件
- 由张量、输入、输出、操作符和名称组成
- 输入和输出相当小,我怀疑它们可能是索引
- 缓冲区有时为空(为什么?)
元数据
张量
- 可能需要从生成的数据类型转换为 Tract 的 DatumType。它位于顶级数据 crate 中。
- 这是依赖关系 tract-core 的部分
- SO:什么是变体张量?
操作符
- 内置操作符的列表可以在 生成的 tflite 架构 中找到,大约在常量数组中的 443 行。
- 关于支持 tensorflow 操作符的超集的官方文档
- tflite C 代码
子图
目前,我正在使用特定模型和测试数据进行测试,因此这可能无法推广到其他模型。如果您在netron中打开模型,您将找到3个独立的图表:主图、sequential/net/while_cond和sequential/net/while_body。
在主图中,节点10仅列示为while,但实际上它由其他子图组成。
备用笔记
我创建了一个仓库专门用于对tflite模型进行探索,如果您想添加一个用于测试的模型,请将其放入测试数据中,并将任何测试输入添加到lfs。如果您编写了一些对其他贡献者有用的实用工具,请随时添加。否则,只需克隆它并忘记它,它只是一些废弃的代码。
依赖项
~16MB
~301K SLoC