国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

onnxruntime推理時切換CPU/GPU以及修改onnx輸入輸出為動態(tài)

這篇具有很好參考價值的文章主要介紹了onnxruntime推理時切換CPU/GPU以及修改onnx輸入輸出為動態(tài)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

onnx模型作為中間模型,相較于pytorch直接推理,是有加速度效果的,且推理代碼簡單,不需要load各種網(wǎng)絡(luò)。最近某些項目因為顯存不夠,onnxruntime推理時切換CPU/GPU,實現(xiàn)某些模型在CPU上推理,某些在GPU上推理。 查了一些別人的文章發(fā)現(xiàn)很多人都說onnxruntime推理沒法像pytorch那樣指定GPU,CPU,只能卸載一個GPU用CPU,卸載CPU用GPU。個人感覺不應(yīng)該是這樣的,點進(jìn)去源碼一看,明明有配置CPU,GPU的參數(shù),而且很簡單。這里把自己踩得一些坑給記錄一些,分享給有需要的人。

onnxruntime CPU/GPU切換

點進(jìn)去源碼之后看到有CUDAExecutionProvider和CPUExecutionProvider這樣的選擇,開始使用的使用低版本onnxruntime-gpu的時候發(fā)現(xiàn)選了“CPUExecutionProvider”依舊是用GPU的資源,后來從一條警告看到1.10版本之后建立推理引擎的時候需要providers參數(shù)選擇CPU/GPU,安裝了onnxruntime-gpu==1.10.0之后果然可以在GPU版本的onnxruntime下使用CPU了。

import onnxruntime as rt
sess = rt.InferenceSession(MODEL_PATH,providers=['CPUExecutionProvider'])# providers=['CPUExecutionProvider','CUDAExecutionProvider']

注意:高版本ONNX動態(tài)尺寸推理的時候,如果inference輸出的shape和你模型文件本身的outputshape不匹配會報警告,這時候會降低推理速度,這時候改一下模型本身設(shè)output shape就行。

修改onnx的輸入/輸出尺寸為動態(tài)

其實這個在轉(zhuǎn)onnx模型的時候input/output就應(yīng)該設(shè)置為靜態(tài)或動態(tài),但是如果沒有原模型,只有一個onnx模型,可以使用下面給的方法快速轉(zhuǎn)換模型為動態(tài)輸入輸出。就把對應(yīng)的輸入輸出某一需要動態(tài)的維度改成“?”就行了。

import onnx
file_path = './my.onnx'
model = onnx.load(file_path)
#model.graph.input[0].type.tensor_type.shape.dim[0].dim_param = '?'
model.graph.output[0].type.tensor_type.shape.dim[2].dim_param = '?'
model.graph.output[0].type.tensor_type.shape.dim[3].dim_param = '?'
onnx.save(model, './my_dynamic.onnx')

后續(xù):

每次我都要挑戰(zhàn)一下這個發(fā)文助手,看起來有點搞笑,東西就這么點非說我字?jǐn)?shù)不夠,CSDN的檢測為什么能這么無聊,非要把字?jǐn)?shù)的權(quán)重弄得那么高,讓人看著很無語,我這就看看到底多少字才能通過檢測,看看評論區(qū)多少在吐槽這個爛檢測系統(tǒng),產(chǎn)品經(jīng)理都裝看不見。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-525652.html

到了這里,關(guān)于onnxruntime推理時切換CPU/GPU以及修改onnx輸入輸出為動態(tài)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • VS c++ onnxruntime 環(huán)境配置、onnx教程、部署推理模型、sklearn pkl模型轉(zhuǎn)onnx、問題匯總

    VS c++ onnxruntime 環(huán)境配置、onnx教程、部署推理模型、sklearn pkl模型轉(zhuǎn)onnx、問題匯總

    目錄 一、初步認(rèn)識ONNX 二、pkl轉(zhuǎn)ONNX+可視化模型 三、ONNX Runtime運行時 3.1 相關(guān)介紹(了解此運行時): 3.2 VS、c++部署onnxruntime 3.3 頭文件引用的一些問題 四、問題匯總: 1. 類沒有成員 2. 版本兼容問題 3. 3.“GetInputName“: 不是 “Ort::Session“ 的成員 官網(wǎng): ONNX Runtime | Home GitHub

    2024年04月09日
    瀏覽(41)
  • 使用onnxruntime-gpu 模型推理

    使用onnxruntime-gpu 模型推理

    1.安裝onnxruntime-gpu 新版的onnxruntime-gpu 即支持gpu的推理,也支持cpu的推理。 卸載舊的1.7.1 cpu版本,安裝新的gpu版本: 檢查是否安裝成功: 2.修改推理代碼 在推理代碼上增加 providers參數(shù),選擇推理的框架??醋约褐С帜膫€就選擇自己支持的就可以了。 如果運行推理代碼出現(xiàn)

    2024年02月15日
    瀏覽(23)
  • 【環(huán)境搭建:onnx模型部署】onnxruntime-gpu安裝與測試(python)

    【環(huán)境搭建:onnx模型部署】onnxruntime-gpu安裝與測試(python)

    onnx 模型在 CPU 上進(jìn)行推理,在conda環(huán)境中直接使用pip安裝即可 想要 onnx 模型在 GPU 上加速推理,需要安裝 onnxruntime-gpu 。有兩種思路: 依賴于 本地主機(jī) 上已安裝的 cuda 和 cudnn 版本 不依賴于 本地主機(jī) 上已安裝的 cuda 和 cudnn 版本 要注意:onnxruntime-gpu, cuda, cudnn三者的版本要對

    2024年02月07日
    瀏覽(25)
  • TRT4-trt-integrate - 3 使用onnxruntime進(jìn)行onnx的模型推理過程

    TRT4-trt-integrate - 3 使用onnxruntime進(jìn)行onnx的模型推理過程

    onnx是microsoft開發(fā)的一個中間格式,而onnxruntime簡稱ort是microsoft為onnx開發(fā)的推理引擎。 允許使用onnx作為輸入進(jìn)行直接推理得到結(jié)果。 建立一個InferenceSession,塞進(jìn)去的是onnx的路徑,實際運算的后端選用的是CPU 也可以選用cuda等等 之后就是預(yù)處理 session.run就是運行的inference過程

    2024年02月15日
    瀏覽(27)
  • YOLOv8-Openvino和ONNXRuntime推理【CPU】

    YOLOv8-Openvino和ONNXRuntime推理【CPU】

    CPU:i5-12500 2.1 Openvino簡介 Openvino是由Intel開發(fā)的專門用于優(yōu)化和部署人工智能推理的半開源的工具包,主要用于對深度推理做優(yōu)化。 Openvino內(nèi)部集成了Opencv、TensorFlow模塊,除此之外它還具有強(qiáng)大的Plugin開發(fā)框架,允許開發(fā)者在Openvino之上對推理過程做優(yōu)化。 Openvino整體框架為

    2024年02月20日
    瀏覽(27)
  • PyTorch多GPU訓(xùn)練模型——使用單GPU或CPU進(jìn)行推理的方法

    PyTorch多GPU訓(xùn)練模型——使用單GPU或CPU進(jìn)行推理的方法

    PyTorch提供了非常便捷的多GPU網(wǎng)絡(luò)訓(xùn)練方法: DataParallel 和 DistributedDataParallel 。在涉及到一些復(fù)雜模型時,基本都是采用多個GPU并行訓(xùn)練并保存模型。但在推理階段往往只采用單個GPU或者CPU運行。這時怎么將多GPU環(huán)境下保存的模型權(quán)重加載到單GPU/CPU運行環(huán)境下的模型上成了一

    2024年02月09日
    瀏覽(33)
  • 配置(GPU/CPU)Pytorch環(huán)境以及修改conda和pip默認(rèn)安裝路徑,安裝環(huán)境前必看?。。ā涀约貉b環(huán)境踩過的坑......)

    配置(GPU/CPU)Pytorch環(huán)境以及修改conda和pip默認(rèn)安裝路徑,安裝環(huán)境前必看?。。ā涀约貉b環(huán)境踩過的坑......)

    版本: pytorch2.0 pycharm2022.3 python3.8 如果你要配置pytorch,你先要確定自己在這臺電腦上是只作為學(xué)習(xí)調(diào)試代碼用還是要用來跑模型,如果用來跑模型,請先下載CUDA和Cudnn,詳見此鏈接安裝配置CUDA與cuDNN安裝教程(超詳細(xì)) 如果是單純用來學(xué)習(xí)調(diào)試代碼,不需要調(diào)用GPU版本的p

    2024年02月07日
    瀏覽(27)
  • 【深度學(xué)習(xí)】ONNX 模型文件修改節(jié)點的名稱,修改輸入名稱,修改輸出名稱

    【深度學(xué)習(xí)】ONNX 模型文件修改節(jié)點的名稱,修改輸入名稱,修改輸出名稱

    想要修改onnx模型文件的節(jié)點名稱,要么在最初的pytorch代碼里去改,要么就直接在onnx模型文件里改。 而我這里直接在onnx模型文件改,我有一個onnx文件,輸出節(jié)點的名字是這樣的: 這不改就看著真難受,那么就用python改: 改完后: 其實修改其他節(jié)點的名稱也可以這樣去做,

    2024年02月15日
    瀏覽(27)
  • onnx筆記1: onnx讀寫、創(chuàng)建以及修改

    1.1 onnx proto onnx存儲pytorch或者tensorflow等框架的模型結(jié)構(gòu),本文了解onnx是如何存儲這些模型結(jié)構(gòu)以及onnx文件的形式。 onnx本質(zhì)是一種 protobuf 格式文件 onnx通過 onnx-ml.proto 來描述onnx的結(jié)構(gòu),利用protoc編譯程序,將onnx結(jié)構(gòu)編譯成 onnx-ml.pb.cc 和 onnx_ml_pb2.py 文件。 然后利用 onnx-ml.p

    2023年04月22日
    瀏覽(14)
  • ONNX:C++通過onnxruntime使用.onnx模型進(jìn)行前向計算【下載的onnxruntime是編譯好的庫文件,可直接使用】

    ONNX:C++通過onnxruntime使用.onnx模型進(jìn)行前向計算【下載的onnxruntime是編譯好的庫文件,可直接使用】

    微軟聯(lián)合Facebook等在2017年搞了個深度學(xué)習(xí)以及機(jī)器學(xué)習(xí)模型的格式標(biāo)準(zhǔn)–ONNX,旨在將所有模型格式統(tǒng)一為一致,更方便地實現(xiàn)模型部署?,F(xiàn)在大多數(shù)的深度學(xué)習(xí)框架都支持ONNX模型轉(zhuǎn)出并提供相應(yīng)的導(dǎo)出接口。 ONNXRuntime(Open Neural Network Exchange)是微軟推出的一款針對ONNX模型格式

    2024年02月15日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包