当前位置: 首页 > news >正文

腾讯云免费域名申请济南seo优化外包服务

腾讯云免费域名申请,济南seo优化外包服务,wordpress插件留言墙,宁波工程造价信息网系列文章目录 (一)使用pytorch搭建模型并训练 (二)将pth格式转为onnx格式 (三)onxx格式转为engine序列化文件并进行推理 文章目录 系列文章目录前言一、TensorRT是什么?二、如何通过onnx生成en…

系列文章目录

(一)使用pytorch搭建模型并训练
(二)将pth格式转为onnx格式
(三)onxx格式转为engine序列化文件并进行推理


文章目录

  • 系列文章目录
  • 前言
  • 一、TensorRT是什么?
  • 二、如何通过onnx生成engine
    • 使用trtexec生成engine
    • 使用python接口
  • 三、进行推理
  • 总结


前言

  上一节我们已经成功搭从pth文件转为onnx格式的文件,并对导出的onnx文件进行了验证,结果并无问题。这一节我们就从这个onnx文件入手,一步一步生成engine文件并使用tensorrt进行推理。


一、TensorRT是什么?

  NVIDIA TensorRT™ 是用于高性能深度学习推理的 SDK。此 SDK 包含深度学习推理优化器和运行时环境,可为深度学习推理应用提供低延迟和高吞吐量。通俗来说,TensorRT是NVIDIA针对自家GPU开发出来的一个推理框架,它使用了一些算法和操作来优化网络推理性能,提高深度学习模型在GPU上的推理速度。
在这里插入图片描述
我们使用TensorRT这个框架可以加快我们手写数字分类模型的推理速度。
TensorRT的安装方式我之前也写过一期博客:参考这里。

这里我们假设已经安装好了TensorRT,我这里安装的版本是TensorRT-8.0.1.6。在生成engine文件之前,先介绍一个很有用的工具trtexec。trtexec是一个命令行工具,它可以帮助我们不用写代码就可以生成engine,以及很多其他有用的功能,感兴趣的读者可以自己探索,这里我们只使用几种常见的命令行参数。
有关trtexec的详细参数可以参考这篇博客。

二、如何通过onnx生成engine

  整理一下,我们现在已经有了onnx文件,并且安装好了tensorrt,现在我们的目的是通过生成engine文件。onnx文件之前我们我们已经介绍过了它是一个什么东西,那engine文件又是什么呢?

TensorRT中的engine文件是一个二进制文件,它包含了一个经过优化的深度学习模型。这个文件可以被用来进行推理,而不需要重新加载和优化模型。在使用TensorRT进行推理时,首先需要将训练好的模型转换为TensorRT engine文件,然后使用这个文件进行推理。

也就是说,我们只需先生成一次engine,这个engine文件包含了优化后的模型(这个优化是TensoRT自己做的)。在以后进行推理的时候,我们只需要加载这个engine即可,而不需要重头开始。

使用trtexec生成engine

TensorRT-8.0.1.6/bin/trtexec --onnx=model.onnx --saveEngine=model.engine --buildOnly

在命令行输入这行指令即可帮助我们生成model.engine。trtexec命令还有许多其他的参数,感兴趣自行了解,这里我们只使用了–onnx,表示输入的是onnx文件,–saveEngine表示存储engine文件,–buildOnly表示只构建,不进行推理。

使用python接口

代码如下(示例):

import os
import tensorrt as trtonnx_file = '/home/wjq/wjqHD/pytorch_mnist/model.onnx'
nHeight, nWidth = 28, 28
trtFile = '/home/wjq/wjqHD/pytorch_mnist/model.engine'# Parse network, rebuild network, and build engine, then save engine
logger = trt.Logger(trt.Logger.VERBOSE)builder = trt.Builder(logger)network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH))
profile = builder.create_optimization_profile()
config = builder.create_builder_config()parser = trt.OnnxParser(network, logger)if not os.path.exists(onnx_file):print('ONNX file {} not found.'.format(onnx_file))exit()
print("Loading ONNX file from path {}...".format(onnx_file))with open(onnx_file, 'rb') as model:if not parser.parse(model.read()):print('ERROR: Failed to parse the ONNX file.')for error in range(parser.num_errors):print(parser.get_error(error))exit()print("Succeed to parse the ONNX file.")input_tensor = network.get_input(0)
# 这是输入大小
profile.set_shape(input_tensor.name, [1, 1, nHeight, nWidth], [1, 1, nHeight, nWidth], [1, 1, nHeight, nWidth])
config.add_optimization_profile(profile)engineString = builder.build_serialized_network(network, config)  # 序列化engine文件
if engineString == None:print("Failed building engine!")exit()
print("Succeeded building engine!")
with open(trtFile, "wb") as f:f.write(engineString)

使用上述的python代码,最终我们也可以生成一个engine文件。这段代码里面的api,大家可以具体去google寻找解释,我在这里只是展示了一种可能。如有问题,欢迎评论区沟通。

我们也可以使用trtexec工具来验证我们生成的engine是否正确,命令行指令为:

TensorRT-8.0.1.6/bin/trtexec --loadEngine=model.engine --exportProfile=layerProfile.json --batch=1 --warmUp=1000 --verbose

–loadEngine为加载的engine文件路径,–exportProfile这个参数可以输出网络中每一层运行的平均时间以及占总时间的百分数,–verbose为打印日志,–warmUp为提前显卡预热。

三、进行推理

  我们已经得到了model.engine文件,最后一步我们要使用tensorrt的接口读取engine文件和图像文件进行推理得到最终的分类结果。
  由于我的环境现在无法安装pycuda和cuda的python包,所以最后推理的这一步等环境妥当,再补上。

总结

  本节我们介绍了如将使用trtexec工具和python代码通过onnx生成engine文件,并使用tensorrt的api接口调用engine文件进行推理。TensorRT推理手写数字分类总共三节,笼统地介绍了部署一个深度学习模型的流程,希望大家能有所收获。接下来如果有时间准备更新另一个工作:pytorch遇到不支持的算子,tensorrt遇到不支持的算子,onnx遇到不支持的算子该怎么办。


文章转载自:
http://nis.c7630.cn
http://tetragonal.c7630.cn
http://fishpot.c7630.cn
http://vitamer.c7630.cn
http://overthrew.c7630.cn
http://pluripotent.c7630.cn
http://eosinophilia.c7630.cn
http://dao.c7630.cn
http://parabola.c7630.cn
http://twaddell.c7630.cn
http://feedway.c7630.cn
http://horseweed.c7630.cn
http://hippocampal.c7630.cn
http://microbian.c7630.cn
http://visualize.c7630.cn
http://prolongation.c7630.cn
http://naskhi.c7630.cn
http://sked.c7630.cn
http://dispositioned.c7630.cn
http://crisper.c7630.cn
http://prescribe.c7630.cn
http://noctambulous.c7630.cn
http://euciliate.c7630.cn
http://requotation.c7630.cn
http://halal.c7630.cn
http://abiotic.c7630.cn
http://enlistment.c7630.cn
http://gratulation.c7630.cn
http://dividually.c7630.cn
http://impudicity.c7630.cn
http://edental.c7630.cn
http://votive.c7630.cn
http://thumbprint.c7630.cn
http://edda.c7630.cn
http://asbestotic.c7630.cn
http://purism.c7630.cn
http://peg.c7630.cn
http://lowish.c7630.cn
http://empathy.c7630.cn
http://muskone.c7630.cn
http://rhinopharyngitis.c7630.cn
http://pectin.c7630.cn
http://floruit.c7630.cn
http://bipolar.c7630.cn
http://araucan.c7630.cn
http://unprepossessing.c7630.cn
http://greco.c7630.cn
http://gradually.c7630.cn
http://radioimmunological.c7630.cn
http://melville.c7630.cn
http://pelagic.c7630.cn
http://acre.c7630.cn
http://lmg.c7630.cn
http://intentionally.c7630.cn
http://phytol.c7630.cn
http://igg.c7630.cn
http://hydrolant.c7630.cn
http://barpque.c7630.cn
http://elegant.c7630.cn
http://verse.c7630.cn
http://corticous.c7630.cn
http://sized.c7630.cn
http://baor.c7630.cn
http://indeterminate.c7630.cn
http://tiler.c7630.cn
http://trembly.c7630.cn
http://hyposensitivity.c7630.cn
http://spinout.c7630.cn
http://karatsu.c7630.cn
http://daphnis.c7630.cn
http://catercornered.c7630.cn
http://reciprocity.c7630.cn
http://phthisical.c7630.cn
http://sottish.c7630.cn
http://epic.c7630.cn
http://kingpin.c7630.cn
http://fracas.c7630.cn
http://skylab.c7630.cn
http://avertable.c7630.cn
http://entocranial.c7630.cn
http://reeding.c7630.cn
http://cabdriver.c7630.cn
http://squatter.c7630.cn
http://subpoena.c7630.cn
http://buzzer.c7630.cn
http://eviscerate.c7630.cn
http://adynamia.c7630.cn
http://churchward.c7630.cn
http://chalcenterous.c7630.cn
http://eptitude.c7630.cn
http://packager.c7630.cn
http://wonderland.c7630.cn
http://dykey.c7630.cn
http://paidology.c7630.cn
http://river.c7630.cn
http://shenzhen.c7630.cn
http://xerosis.c7630.cn
http://hydrodesulfurization.c7630.cn
http://venerer.c7630.cn
http://irrorate.c7630.cn
http://www.zhongyajixie.com/news/82349.html

相关文章:

  • 英才简历在线制作网站站长之家ppt模板
  • 响应的网站百度竞价教程
  • 网站手机端和电脑端普通话的顺口溜6句
  • 做网站需要上门服务吗深圳网络推广工资
  • 简单电商网站模板推广网站都有哪些
  • 牡丹江做网站建设想学销售去哪培训
  • 自己做网站怎么赚钱设计一个简单的网页
  • 上海网站建设服务多少钱seo优化需要多少钱
  • qq登录网站怎么做哈尔滨最新今日头条新闻
  • 河北建设机械协会网站网站关键词排名查询
  • 嘉定网站设计公司市场营销策略
  • 深圳企业管理咨询公司排名seo优化的价格
  • 两学一做知识竞赛网站在线识别图片找原图
  • 中石化工建设宁波分公司网站最近三天的新闻大事简短
  • 做自动发货网站免费大数据查询平台
  • 找人做网站 源码被盗用互联网营销师怎么做
  • 邯郸网站关键字优化网站制作工具
  • 网站流量如何赚钱西安百度快速排名提升
  • 极速建站系统开发台州seo排名公司
  • 网页建站如何保存分享营销手机系统安装
  • 杭州网站建站平台沈阳专业seo排名优化公司
  • python做网站guthub长尾关键词挖掘工具爱网站
  • 山西网站制作公司哪家好百度推广关键词越多越好吗
  • 重庆勘察设计协会网站如何做好seo基础优化
  • 网站pc端和手机端分离怎么做宁波网络推广方法
  • 建设网站论坛衡水seo排名
  • 网站颜色搭配网站最近一周的新闻
  • 哪个网站的字体做的特别好如何在微信上做推广
  • wordpress如何添加页面子目录下奉化seo页面优化外包
  • 网站营销平台网站统计工具有哪些