博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Tengine端侧推理框架】——模型序列解析器
阅读量:4304 次
发布时间:2019-05-27

本文共 1048 字,大约阅读时间需要 3 分钟。

code:https://github.com/OAID/Tengine

version: 88b4b7a2
图片,代码都来自以上项目。
在这里插入图片描述

1. 简介

Tengine的模型表达(序列化+反序列化)都是自己定义的,优点是:不会有其他依赖,缺点是:刚开始接触会很头疼,你要通过代码去看详细的规则。

其次,Tengine有别于ncnn(是将参数和数据分开的param+bin),Tengine是将参数和数据都写入到二进制文件。所以在解析的时候需要定义相应的数据结构才能解析。

同时,有别于mnn,用protobuffer做模型管理。所以Tengine的模型代码这块简单看一下就行

2. 正题

  • 定义static struct tm2_serializer tm2_serializer变量
static struct tm2_serializer tm2_serializer = {
.base = {
.get_name = get_name, .load_model = load_model, .load_mem = load_mem, .unload_graph = unload_graph, .register_op_loader = register_op_loader, .unregister_op_loader = unregister_op_loader, .init = init_tm2_serializer, .release = release_tm2_serializer, }, .loader_list = NULL,};
  • tm2_serializer写入到internal_serializer_registry进行统一管理,其实也可以不用写入到internal_serializer_registry

  • 将不同op的op_loader注册到tm2_serializerloader_list

转载地址:http://buhws.baihongyu.com/

你可能感兴趣的文章
linux下源的相关笔记(suse)
查看>>
linux系统分区文件系统划分札记
查看>>
Linux(SUSE 12)安装Tomcat
查看>>
Linux(SUSE 12)安装jboss4并实现远程访问
查看>>
Neutron在给虚拟机分配网络时,底层是如何实现的?
查看>>
netfilter/iptables全攻略
查看>>
Overlay之VXLAN架构
查看>>
Eclipse : An error occurred while filtering resources(Maven错误提示)
查看>>
在eclipse上用tomcat部署项目404解决方案
查看>>
web.xml 配置中classpath: 与classpath*:的区别
查看>>
suse如何修改ssh端口为2222?
查看>>
详细理解“>/dev/null 2>&1”
查看>>
suse如何创建定时任务?
查看>>
suse搭建ftp服务器方法
查看>>
centos虚拟机设置共享文件夹并通过我的电脑访问[增加smbd端口修改]
查看>>
文件拷贝(IFileOperation::CopyItem)
查看>>
MapReduce的 Speculative Execution机制
查看>>
大数据学习之路------借助HDP SANDBOX开始学习
查看>>
Hadoop基础学习:基于Hortonworks HDP
查看>>
为什么linux安装程序 都要放到/usr/local目录下
查看>>