tensorrt動態batch推理注意事項

一、背景:使用pytorch進行訓練得到pt模型, 然后使用torch.onnx把pt模型轉化為onnx模型。然后再使用tensorrt自帶的trtexec.exe文件把onnx模型轉化為engine文件。

(1)在使用C++進行推理的時候發現一個batch的數據,值推理了里面的第一張,其他圖片輸出的結果都為0;

原因分析:這是因為在使用torch.onnx把pt文件轉為onnx的時候,沒有給他增加動態batch,導致默認的batch為1,所以在推理一個batch里面的多個數據時,只對第一個數據進行了加速推理操作,其他的數據就沒進入推理,所以其他數據輸出為0;

(2)解決方法:

1.首先pt模型轉onnx模型的時候,在export加上 dynamic_axes 參數,這樣在把onnx轉為tensorrt的engine文件的時候,才能轉化成功。

import torch.onnxmodel = torch.load("cls_model.pth")
model.eval()dummy_input = torch.randn(1, 3, 64, 64).to("cuda")
torch.onnx.export(model,dummy_input,"cls_model_dyn.onnx",export_params=True,input_names=["input"],output_names=["output"],verbose=True, # verbose=True 會打印出詳細的轉換過程dynamic_axes={'input':{0:"batch"}, "output":{0:"batch"}} # 設置動態的batch_size)

2.然后在使用trtexec.exe把onnx轉成engine文件的話,給它設置動態范圍大小minShapes、optShapes、maxShapes、(根據自己推理大小來更改,我的是64)

 .\trtexec.exe --onnx=cls_model_dyn.onnx --saveEngine=cls.engine --explicitBatch --minShapes=input:1x3x64x64 --optShapes=input:8x3x64x64 --maxShapes=input:8x3x64x64

這樣子在使用C++推理的時候就可以推理一個batch的數據了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35677.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35677.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35677.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

篩斗數據:數據提取技術,讓數據說話的力量

在當今這個信息爆炸的時代,數據已經滲透到我們生活的方方面面。從商業決策到科學研究,從社會治理到個人生活,數據都扮演著至關重要的角色。而要讓這些數據真正發揮其價值,就需要依賴數據提取技術,讓數據“開口說話”&a…

環路濾波器

塊效應產生的原因 塊效應指視頻邊界不連續的變化,我們在觀看視頻的時候,在運動劇烈的場景常能觀察到圖像出現小方塊,小方塊在邊界處呈現不連續的效果(如下圖),這種現象被稱為塊效應(blocking artifact)。 造成這種現象的主要原因有兩點: DCT量化誤差導致運動補償導致…

深入理解Java多線程中的 wait() 和 notify():為何要與 synchronized 手牽手

在Java中,wait、notify方法通常與synchronized關鍵字一起使用,這樣做有幾個重要的原因,主要涉及線程的協調和正確的并發控制。以下是一些關鍵點: 監視器鎖(Monitor Lock): 每個對象在Java中都可…

二叉樹 遍歷迭代法

二叉樹 遍歷迭代法 Leetcode 94 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), rig…

一個產品需求工程師繁忙的一天

早晨:開啟新的一天 7:00 AM - 起床 早晨七點準時起床。洗漱、早餐后,查看手機上的郵件和消息,提前了解今天的工作安排和優先事項。 8:00 AM - 前往公司 坐地鐵前往公司。在地鐵上,習慣性地閱讀一些行業資訊和市場報告&#xff0…

使用SpringBoot整合Servlet

一、SpringBoot和Servlet的整合 1、用注解WebServlet配置Servlet映射 創建一個SpringBoot的web工程,在工程用創建一個Servlet 2、在SpringBoot的啟動類上加注解ServletComponentScan 二、額外的方式 1、不使用WebServlet配置Servlet映射 創建一個SpringBoot工…

RabbitMQ延時隊列(實現定時任務)

消息的TTL(Time To Live)就是消息的存活時間。 RabbitMQ可以對隊列和消息分別設置TTL。 對隊列設置存活時間,就是隊列沒有消費者連著的保留時間。 對每一個單獨的消息單獨的設置存活時間。超過了這個時間,我們認為這個消息就死了,稱之為死…

代碼隨想錄算法訓練營:19/60

非科班學習算法day19 | LeetCode530:二叉搜索樹的最小絕對差 ,Leetcode501:二叉搜索樹的眾數 ,Leetcode236:二叉樹的最近公共祖先 目錄 介紹 一、LeetCode題目 1.LeetCode530:二叉搜索樹的最小絕對差 題目解析 2.Leetcode501: 二叉搜索樹的眾數 …

軟設之加工邏輯之結構化語言

結構化語言是一種介于自然語言和形式化語言之間的半形式語言,是自然語言的一個受限子集 外層:用來描述控制結構,采用順序,選擇和重復3種基本結構 1.順序結構:一組祈使語句,選擇語句,重復語句的…

個人對JVM的一點理解

JVM(Java 虛擬機)是 Java 程序能夠跨平臺運行的關鍵。它負責將 Java 字節碼轉換為機器碼并執行。 JVM 主要由類加載器、運行時數據區、執行引擎和本地方法接口等部分組成。運行時數據區包括方法區、堆、虛擬機棧、本地方法棧和程序計數器等。 GC&#xf…

遠期利率(Forward Rate)是什么?以及遠期利率在期貨合約中的應用

遠期利率是什么? 中文版 遠期利率(Forward Rate)是指從未來某一時間段開始適用的利率。它是金融市場上的一種合約利率,表示在某個特定日期開始的一段時間內的預期利率。這種利率可以通過現有的即期利率(Spot Rate&am…

6.26考試前總結

一、選擇 1、運算符重載:(1)不可重載:. .* :: ?: sizeof (2)只成員函數:、[]、()、-> ps:和[]需要加&,返回類,[]返回中括號內…

SpringBoot根據不同IP限制接口的QPS

根據對方IP地址來限制接口的QPS(每秒查詢率),你可以結合Spring Boot應用、Guava的RateLimiter或者自定義的并發控制邏輯來實現。以下是一個基于Guava RateLimiter和Spring Boot的示例,展示如何根據IP地址來限制接口的QPS&#xff…

鏡頭下的光學

說實話,當我看到幾何光學的內容全是初中的解析幾何的時候,我就覺得講的方式太原始了,而且太過復雜也看不懂。所以我嘗試做了數學建模,發現建模之后模型可以解釋一些物理現象,也不會有矛盾的地方,那就算過得…

【Python系列】探索 Python 環境管理工具:conda 與 pip 的比較

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

簡過網:專科生可以考的編制崗位有哪些?這5個鐵飯碗要抓住了!

專科生可以考的編制崗位有哪些?以下這幾種可以考的,尤其是應屆畢業生,一定要抓住機會哦! ? 一、三支一扶:專科生可報考,期滿可轉編。 三支一扶:支農、支醫生、支教、扶貧 工作時間一般為2年&…

深入探索Postman:前置與后置腳本的編寫與應用

Postman是一款廣受歡迎的API開發和測試工具,它提供了豐富的功能來簡化接口測試過程。在Postman中,前置腳本(Pre-request Script)和后置腳本(Tests Script)是兩個強大的功能,允許用戶在發送請求之…

秋招Java后端開發沖刺——非關系型數據庫篇(Redis)

一、非關系型數據庫 1. 主要針對的是鍵值、文檔以及圖形類型數據存儲。 2. 特點: 特點說明靈活的數據模型支持多種數據模型(文檔、鍵值、列族、圖),無需預定義固定的表結構,能夠處理各種類型的數據。高擴展性設計為水…

安全技術和防火墻(一)

安全技術和防火墻 安全技術 入侵檢測系統:特點是不阻斷網絡訪問,主要提供報警和事后監督 不主動介入 (監控) 入侵防御系統:透明模式工作 ,數據包,網絡監控,服務攻擊,木馬,蠕蟲,系統漏洞 等 進行準確的分析判斷 判斷為攻擊行為后會…

高校心理咨詢管理系統

摘 要 隨著高校學生心理問題的增多,心理咨詢服務在高校中的重要性日益凸顯。然而,傳統的心理咨詢管理方式存在著諸多問題,如信息不透明、咨詢師資源不足等。為了解決這些問題,本文設計并實現了一種基于Java Web的高校心理咨詢管理…