Pytorch_模型部署和推断

TensorRT

   TensorRT来部署深度学习模型以实现对模型的加速,从而提高深度学习模型运行的效率
      神经网络结构和相关参数权重
	      TensorRT使用流程,
		  分为两个阶段:预处理阶段和推理阶段。其部署大致流程如下:
		      1.导出网络定义以及相关权重;       将深度学习模型导出ONNX文件,然后拿着ONNX文件去部署  torch.onnx.export
			  2.解析网络定义以及相关权重;       TensorRT可以直接从ONNX文件中读取出网络定义和权重信息
			  3.根据显卡算子构造出最优执行计划;
			  4.将执行计划序列化存储;           序列化为xxx.engine文件持久化保存
			  5.反序列化执行计划; 
			  6.进行推理                         用trtexec.exe实现预推理需要系统安装好cudatoolkit和cudnn

用 Python API 从头创建网络(重点)

  1、从头创建engine的9个基本步骤
    step1:创建logger
    step2:创建builder
    step3:创建network
    step4:向network中添加网络层
    step5:设置并标记输出
    step6:创建config并设置最大batchsize和最大工作空间
    step7:创建engine
    step8:序列化保存engine
    step9:释放资源

CUDA 推断使用GPU

 Cuda-GPU -sh
        CUDA_VISIBLE_DEVICES=1 sh 0_run.sh
      CUDA_VISIBLE_DEVICES=1
          只有编号为 1 的 GPU 对程序是可见的,
      	    在代码中 gpu[0] 指的就是这块 GPU。
      CUDA_VISIBLE_DEVICES=0,2,3
          只有编号为 0,2,3 的 GPU 对程序是可见的,
      	    在代码中 gpu[0] 指的是第 0 块,gpu[1] 指的是第 2 块,gpu[2] 指的是第 3 块。
      		
 Python- cuda 
     ##注意赋值为字符串,不是整型。
     import os
     os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2,3"

参考:

   TensorRT教程8:使用 Python API 从头创建网络(重点)  https://blog.csdn.net/weixin_41562691/article/details/118278140	
posted @ 2022-05-06 10:20  辰令  阅读(151)  评论(0编辑  收藏  举报