3. t2t_vit inference

前言

对vit 进行fp16推理

参考链接:

https://github.com/open-mmlab/mmpretrain/tree/master/configs/t2t_vit

run code :

https://mmclassification.readthedocs.io/en/latest/getting_started.html#inference-and-test-a-dataset

https://mmclassification.readthedocs.io/en/latest/tools/pytorch2onnx.html?highlight=onnx

run code and convert onnx

# run acc 
python3 tools/test.py configs/t2t_vit/t2t-vit-t-14_8xb64_in1k.py  ./t2t-vit-t-14_8xb64_in1k_20211220-f7378dd5.pth --metrics accuracy  --out result.pkl 2>&1 | tee test_run.log# convert onnx , bs=1
pip install onnx  onnxsim
python3 tools/deployment/pytorch2onnx.py \configs/t2t_vit/t2t-vit-t-14_8xb64_in1k.py \--checkpoint ./t2t-vit-t-14_8xb64_in1k_20211220-f7378dd5.pth  \--output-file ./t2t-vit-t-14.onnx  2>&1 | tee test_onnx.log# simplify
onnxsim t2t-vit-t-14.onnx  t2t-vit-t-14-sim.onnx # onnx bs=64
修改文件中的input data format,或者dynamic axes, 详细见后面介绍

test infer use onnxruntime

import onnxruntime
import onnx
import torch
import numpy as np# 检查onnx计算图
def checknet():model = onnx.load("./t2t-vit-t-14_bs64-sim.onnx")onnx.checker.check_model(model)  # Print a human readable representation of the graph# print(onnx.helper.printable_graph(model.graph))def runonnx():image = torch.randn(64, 3, 224, 224).numpy().astype(np.float32)session = onnxruntime.InferenceSession("./t2t-vit-t-14_bs64-sim.onnx")# session.get_modelmeta()input_name = session.get_inputs()[0].name  output_name = session.get_outputs()[0].nameprint('Input Name:', input_name)print('Output Name:', output_name)output2 = session.run([output_name], {input_name: image})print(output2[0].shape)if __name__ == '__main__':checknet()runonnx()

save node pred use onnxruntime

import onnxruntime
import onnx
import torch
import numpy as np
import onnx.helper as helper
import osdef get_onnx_node():base_path = "./"onnx_file = os.path.join(base_path,"t2t-vit-t-14_bs64-sim.onnx")save_onnx = os.path.join(base_path,"t2t-vit-t-14_bs64-sim-out.onnx")model = onnx.load(onnx_file)out_names=[]for i, node in enumerate(model.graph.node):out_names.append(node.output[0])for out_name in out_names:intermediate_layer_value_info = helper.ValueInfoProto()intermediate_layer_value_info.name = out_namemodel.graph.output.append(intermediate_layer_value_info)onnx.save(model, save_onnx)def get_onnx_layer_out():base_path = "./"onnx_file = os.path.join(base_path,"t2t-vit-t-14_bs64-sim-out.onnx")OutDir = "./onnx_file/"image = torch.randn(64, 3, 224, 224).numpy().astype(np.float32)session = onnxruntime.InferenceSession(onnx_file)input_name = session.get_inputs()[0].name  outputs = [x.name for x in session.get_outputs()]preds = session.run(outputs, {input_name: image})for name,value in zip(outputs, preds):file = OutDir + name + ".npy"np.save(file, value, allow_pickle=True, fix_imports=True)if __name__ == '__main__':get_onnx_node()get_onnx_layer_out()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP如何批量修改二维数组中值

每个name值加pex,age加5, 原数据: $data[["name">a,age>12],["name">b,age>22],["name">c,age>33],["name">d,age>44], ];实现效果 方案一、foreach引用方式 $data[["…

R语言生物群落(生态)数据统计分析与绘图实践技术应用

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线,通过多个来自经典…

iis前端代理后台tomcat

1)tomcat服务器配置运行好,服务地址位于 localhost:8080/wechat 2)iis 绑定了域名 api.abc.com 希望访问 api.abc.com/wechat时,实际由tomcat的服务处理; 3)iis上需要添加组件 requestRouter_amd64.msi rewrite_amd64_zh-CN.msi 4)iis进行相关配置…

jvm对象内存划分

写此篇博客源于面试问到内存分配的细节,然后不明白问的是什么。回过头发现以前看过这块内容,只是有些印象,但是无法描述清楚。 额外概念了解 jvm内存空间是逻辑上连续的虚拟地址空间(虚拟内存中的概念)映射到物理内存…

Java集成腾讯云OCR身份证识别接口

一、背景 项目用到身份证识别获取人员信息的功能,于是想到了腾讯云提供这样的API。在整合代码过程都很顺利,利用腾讯云官方SDK很快集成进来。但是在上测试环境部署时有了新的问题,通过Nginx代理后的环境无法访问到目标腾讯云接口,…

腾讯云轻量应用服务器地域北京、上海和广州怎么选择比较好?

腾讯云轻量应用服务器地域是指轻量服务器数据中心所在的地理位置,如上海、广州和北京等地域,如何选择地域?腾讯云百科txybk.com建议地域选择遵循就近原则,用户距离轻量服务器地域越近,网络延迟越低,速度就越…

前端移动web高级详细解析三

模拟移动设备,方便查看页面效果 屏幕分辨率 分类: 物理分辨率:硬件分辨率(出厂设置) 逻辑分辨率:软件 / 驱动设置 结论:制作网页参考 逻辑分辨率 视口 作用:显示 HTML 网页的区…

目标检测YOLO实战应用案例100讲-基于无人机图像的房屋目标检测(续)

目录 房屋目标数据集的构建 3.1 数据集的相关说明 3.2 图像的预处理 3.2.1 图像的变换与增强 <

linux 模块安装与卸载

文章目录 模块实现编译模块的 makefile编译报错解决模块编译日志自动化模块安装模块卸载配置头文件路径 模块实现 新建 my_module.c 文件 #include <linux/types.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/module.h>st…

uni-app/vue 文字转语音朗读(附小程序语音识别和朗读)uniapp小程序使用文字转语音播报类似支付宝收款播报小程序语音识别和朗读)

uni-app/vue 文字转语音朗读&#xff08;小程序语音识别和朗读&#xff09; uniapp小程序功能集合 1、uniapp小程序文字转语音播报 一、第一种方式&#xff1a;直接加语音包 固定的文本 先利用工具生成了 文本语音mp3文件&#xff0c;放入项目中&#xff0c;直接用就好了 …

敏捷开发框架Scrum-概述

如果你是一个程序员&#xff0c;可能会觉得这是个程序开发框架。我开始也是这样认为的。后来学习了PMP、敏捷后&#xff0c;才知道Scrum是一个用于管理团队工作的敏捷框架。Scrum可以理解成一个团队在一段时间里完成工作的方式。这里的一段时间通常很短&#xff0c;一到两周&am…

使用Terraform管理已经存在的kubernates和默认的节点池

背景&#xff1a; 通过terraform resource "alicloud_cs_managed_kubernetes" "k8s" {...}创建集群时&#xff0c;会产生一个默认的节点池default-nodepool&#xff0c;但是如何去修改这个默认节点池的信息呢&#xff1f; 解决思路&#xff1a; 因为Ter…

二叉搜索树 和 哈希表 (JAVA)

目录 二叉搜索树 二叉搜索树的插入 二叉搜索树的查找 二叉搜索树的删除 哈希表 哈希冲突 闭散列 线性探测法 二次探测法 开散列 开散列代码实现&#xff1a; 插入元素 删除元素 查找元素 二叉搜索树 先了解以下二叉搜索树是啥&#xff0c;概念如下&#xff1a…

代码随想录day4:链表总结

两两交换链表中的节点 一开始自己的思路只是两两交换&#xff0c;并没有说涉及到前一个节点。实际上两两交换涉及到了三个节点 使用虚拟头结点&#xff0c;这样一次性处理三个节点。且每次组里第一个节点其实数值没变。 class Solution { public:ListNode* swapPairs(ListNod…

光强的检测与控制系统设计

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、实习内容二、实习方法2.1 proteus仿真部分2.2 使用Altium designer软件绘制原理图2.2.1 工程创建2.2.2 绘制封装以及链接封装与原件原理图2.2.3检查原件原理…

【深入浅出】寄存器精讲第一期

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、算法模板、汇编语言 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️开篇1.1 &#x1f514;CPU 概述&#xff08;简单了解&#xff09…

分布式消息队列:RabbitMQ(1)

目录 一:中间件 二:分布式消息队列 2.1:是消息队列 2.1.1:消息队列的优势 2.1.1.1:异步处理化 2.1.1.2:削峰填谷 2.2:分布式消息队列 2.2.1:分布式消息队列的优势 2.2.1.1:数据的持久化 2.2.1.2:可扩展性 2.2.1.3:应用解耦 2.2.1.4:发送订阅 2.2.2:分布式消息队列…

mathtype7.4破解永久激活码

MathType(数学公式编辑器)是由Design Science公司研发的一款专业的数学公式编辑工具。MathType功能非常强大&#xff0c;尤其适用于专门研究数学领域的人群使用。使用MathType让你在输入数学公式的时候能够更加的得心应手&#xff0c;各种复杂的运算符号也不在话下。 MathType最…

云计算概述笔记

目录 IT发展趋势&#xff1a; IT定义&#xff1a;IT是信息处理的总集&#xff0c;包括&#xff1a;软件&#xff0c;硬件&#xff0c;通信和相关服务等。 传统IT架构的核心&#xff1a;以数据中心为基础的核心架构。 传统IT面临的挑战&#xff1a; IT发展趋势&#xff1a; …