日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python api構建tensorrt加速模型的步驟詳解

瀏覽:20日期:2022-08-07 08:24:30
目錄一、創建TensorRT有以下幾個步驟:二、Python api和C++ api在實現網絡加速有什么區別?三、構建TensorRT加速模型 3.1 加載tensorRT3.2 創建網絡3.3 ONNX構建engine一、創建TensorRT有以下幾個步驟:

1.用TensorRT中network模塊定義網絡模型2.調用TensorRT構建器從網絡創建優化的運行時引擎3.采用序列化和反序列化操作以便在運行時快速重建4.將數據喂入engine中進行推理

二、Python api和C++ api在實現網絡加速有什么區別?

個人看法1.python比c++更容易讀并且已經有很多包裝很好的科學運算庫(numpy,scikit等),2.c++是接近硬件的語言,運行速度比python快很多很多,因為python是解釋性語言c++是編譯型語言

三、構建TensorRT加速模型 3.1 加載tensorRT

1.import tensorrt as trt2.為tensorrt實現日志報錯接口方便報錯,在下面的代碼我們只允許警告和錯誤消息才打印,TensorRT中包含一個簡單的日志記錄器Python綁定。

TRT_LOGGER = trt.Logger(trt.Logger.WARNING)

3.2 創建網絡

簡單來說就是用tensorrt的語言來構建模型,如果自己構建的話,主要是靈活但是工作量so large,一般還是用tensorrt parser來構建(1)Caffe框架的模型可以直接用tensorrt內部解釋器構建(2)除caffe,TF模型以外其他框架,先轉成ONNX通用格式,再用ONNX parser來解析(3)TF可以直接通過tensorrt內部的UFF包來構建,但是tensorrt uff包中并支持所有算子(4)自己將wts放入自己構建的模型中,工作量so large,但是很靈活。

3.3 ONNX構建engine

因為博主用的ONNXparser來構建engine的,下面就介紹以下ONNX構建engine,步驟如下:(1)導入tensorrt

import tensorrt as trt

(2)創建builder,network和相應模型的解釋器,這里是onnxparser

EXPLICIT_BATCH = 1 << (int)(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)with builder = trt.Builder(TRT_LOGGER) as builder,builder.create_network(EXPLICIT_BATCH) as network, trt.OnnxParser(network, TRT_LOGGER) as parser:with open(model_path, ’rb’) as model:parser.parse(model.read())

這個代碼的主要意思是,構建報錯日志,創建build,network和onnxparser,然后用parser讀取onnx權重文件。

3.3.1 builder介紹

builder功能之一是搜索cuda內核目錄,找到最快的cuda以求獲得最快的實現,因此有必要使用相同的GPU進行構建(相同的操作,算子進行融合,減少IO操作),engine就是在此基礎上運行的,builder還可以控制網絡以什么精度運行(FP32,FP16,INT8),還有兩個特別重要的屬性是最大批處理大小和最大工作空間大小。

builder.max_batch_size = max_batch_sizebuilder.max_workspace_size = 1 << 20

3.3.2序列化模型

序列化和反序列化模型的主要是因為network和定義創建engine很耗時,因此可以通過序列化一次并在推理時反序列化一次來避免每次應用程序重新運行時重新構建引擎。note:序列化引擎不能跨平臺或TensorRT版本移植。引擎是特定于它們所構建的GPU模型(除了平臺和TensorRT版本)代碼如下:

#序列化模型到模型流serialized_engine = engine.serialize()#反序列化模型流去執行推理,反序列化需要創建一個運行時對象with trt.Runtime(TRT_LOGGER) as runtime:engine = runtime.deserialize_cuda_engine(serialized_engine)#也可以將序列化模型writewith open(“sample.engine”, “wb”) as f:f.write(engine.serialize())#然后再讀出來進行反序列化with open(“sample.engine”, “rb”) as f, trt.Runtime(TRT_LOGGER) as runtime:engine = runtime.deserialize_cuda_engine(f.read())

3.3.3執行推理過程

note:下面過程的前提是已經創建好了engine

# 為輸入和輸出分配一些主機和設備緩沖區:#確定尺寸并創建頁面鎖定內存緩沖區h_input = cuda.pagelocked_empty(trt.volume(engine.get_binding_shape(0)),dtype=np.float32)h_output =cuda.pagelocked_empty(trt.volume(engine.get_binding_shape(1)),dtype=np.float32)#為輸入和輸出分配設備內存d_input = cuda.mem_alloc(h_input.nbytes)d_output = cuda.mem_alloc(h_output.nbytes)#創建一個流,在其中復制輸入/輸出并運行推斷stream = cuda.Stream()

# 創建一些空間來存儲中間激活值,因為engine保存了network定義和訓練時的參數,這些都是構建的上下文執行的。with engine.create_execution_context() as context: # 輸入數據傳入GPUcuda.memcpy_htod_async(d_input, h_input, stream) # 執行推理. context.execute_async(bindings=[int(d_input), int(d_output)], stream_handle=stream.handle) # 將推理后的預測結果從GPU上返回. cuda.memcpy_dtoh_async(h_output, d_output, stream) # 同步流 stream.synchronize() # 返回主機輸出 return h_output

note:一個engine可以有多個執行上下文,允許一組權值用于多個重疊推理任務。例如,可以使用一個引擎和一個上下文在并行CUDA流中處理圖像。每個上下文將在與引擎相同的GPU上創建。

到此這篇關于Python api構建tensorrt加速模型的文章就介紹到這了,更多相關Python api tensorrt加速模型內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91中文字幕精品永久在线| 国精品一区二区三区| 尤物网精品视频| 欧美a一区二区| 久久精品国产亚洲一区二区三区| 蜜桃av一区二区| 99在线精品免费视频九九视| 99久久久久| 一本大道色婷婷在线| 国产精品亚洲欧美日韩一区在线| 西西人体一区二区| 国产传媒在线| 欧美黄色网页| 久久aⅴ国产紧身牛仔裤| 黄色免费成人| 日韩在线a电影| 欧美日韩 国产精品| 国产欧美在线观看免费| 狠狠色狠狠色综合日日tαg| 国产91久久精品一区二区| av一区在线| 亚洲女人av| 中文字幕av亚洲精品一部二部| 一级成人国产| 国产精品美女在线观看直播| 精品日产乱码久久久久久仙踪林| 伊人久久亚洲热| 亚洲欧美日韩视频二区| 日韩高清不卡一区二区| 精品美女在线视频| 亚洲综合电影| 亚洲啊v在线免费视频| 亚洲网站视频| 日韩精品成人在线观看| 国产精品一区二区精品| 久久一级电影| 日韩国产一二三区| 久久福利在线| 欧美专区在线| 国产福利片在线观看| 最新国产精品视频| 国产激情在线播放| 综合亚洲视频| 午夜欧美巨大性欧美巨大| 日本不卡一区二区| 欧美日韩国产在线观看网站| 色综合视频一区二区三区日韩 | 国产精品成人国产| 久久国产福利| 久久久影院免费| 国产欧美日韩免费观看| 免费成人性网站| 欧美a级一区| 在线亚洲自拍| 成人va天堂| 精品免费av一区二区三区| 欧美日本一区| 综合激情婷婷| av日韩中文| 国产中文字幕一区二区三区| 日韩精品a在线观看91| 一本综合精品| 四虎国产精品免费久久| 欧美日韩国产一区精品一区| 精品亚洲美女网站| 欧美少妇精品| 午夜av成人| 国产精品人人爽人人做我的可爱| 国产一区二区三区成人欧美日韩在线观看| 日本成人在线一区| 欧美视频一区| 国产高清日韩| 午夜精品成人av| 久久免费黄色| 欧美日韩国产免费观看| 国产亚洲精品v| 免费在线看一区| 久久不卡国产精品一区二区| 国产精品99久久免费| 四季av一区二区凹凸精品| 国产精品久久久久久久久久10秀| 中文在线免费视频| 不卡中文一二三区| av成人国产| 91免费精品国偷自产在线在线| 久久不见久久见中文字幕免费| 超碰99在线| 亚洲五月综合| 国产精品nxnn| 久久久成人网| 亚洲精品激情| 成人精品国产亚洲| 综合国产在线| 亚洲精品88| 亚欧成人精品| 久久久久久黄| 欧美日韩国产一区二区在线观看| 国产成人黄色| 国产高清久久| 日韩精品欧美大片| 中文在线中文资源| 日韩1区2区日韩1区2区| 日韩精品午夜| 国产乱论精品| 日韩午夜一区| 国产suv精品一区二区四区视频 | 亚洲精品看片| 国产+成+人+亚洲欧洲在线| 午夜在线视频一区二区区别| 国产精品对白久久久久粗| 日韩网站中文字幕| 国产免费av一区二区三区| 亚洲免费成人| 久久久精品五月天| 精品国产一区二区三区性色av| 国产午夜精品一区二区三区欧美| 久久99青青| 亚洲日本在线观看视频| 不卡一区2区| 欧美亚洲国产精品久久| 亚洲欧洲国产精品一区| 亚洲欧美日本国产专区一区| 亚洲www啪成人一区二区| 国产欧美一区二区三区精品酒店| 亚洲视频二区| 欧美黑人巨大videos精品| 日韩精品一级| 亚洲人成网77777色在线播放 | 伊人精品在线| 99久久夜色精品国产亚洲1000部| 精品视频一区二区三区在线观看| 国产欧美日韩精品高清二区综合区 | 毛片不卡一区二区| 欧美日韩一区二区三区不卡视频 | 日本亚洲视频在线| 久久国产精品99国产| 欧美激情国产在线| 国内精品麻豆美女在线播放视频| 久久av影视| 在线天堂中文资源最新版| 97精品一区| 久久久夜夜夜| 午夜一级久久| 日本午夜精品| 久久天堂影院| 欧美日韩少妇| 亚洲精品看片| 亚洲精品自拍| 麻豆中文一区二区| 欧美sss在线视频| 亚洲在线免费| 日韩精品第一| 国内精品麻豆美女在线播放视频| 香蕉人人精品| 国产一区91| 久久国产生活片100| 午夜av成人| 日本精品国产| 欧美~级网站不卡| 日本不卡在线视频| 久久久久欧美精品| 久久国际精品| 免费人成精品欧美精品| 麻豆国产精品一区二区三区| 亚洲欧洲一区二区天堂久久| 国产精品jk白丝蜜臀av小说| 蜜臀国产一区| 最新亚洲国产| 老牛国内精品亚洲成av人片| 米奇777超碰欧美日韩亚洲| 视频一区中文字幕精品| 亚洲成人二区| 国内一区二区三区| 石原莉奈在线亚洲三区| 国产欧美高清视频在线| 亚洲欧美视频一区二区三区| 成人在线视频免费| 欧美视频一区| 日韩精品免费视频人成| 亚洲一区黄色| 欧美成人综合| 精品一区二区三区四区五区| 日韩综合一区二区三区| 99在线精品免费视频九九视| 久久久久久黄| 老牛国内精品亚洲成av人片| 欧美一区精品| 日韩精品免费观看视频| 天堂va蜜桃一区二区三区| 亚洲激情国产| 久久精品观看| 国产一区二区三区亚洲| 四虎精品永久免费| 亚久久调教视频| 婷婷五月色综合香五月| 国产精品社区| 999精品在线| 精品在线网站观看| 国产伊人久久| 日本欧美不卡|