• 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
  • 相关阅读:
    Fragment练习
    view有了父元素就不能再添加父元素
    margin与padding的不同
    BroadcastReceiver组件
    史上最著名的10个思想实验[转]

    godaddy域名空间购买波折
    碎片2
    程序员要多喝水
    google.com的首页换上了pc man游戏
  • 原文地址:https://www.cnblogs.com/ytwang/p/16227625.html
Copyright © 2020-2023  润新知