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

Paddle模型轉(zhuǎn)ONNX

這篇具有很好參考價(jià)值的文章主要介紹了Paddle模型轉(zhuǎn)ONNX。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

深度學(xué)習(xí)模型在硬件加速器上的部署常常要用到ONNX(Open Neural Network Exchange,開放神經(jīng)網(wǎng)絡(luò)交換)格式,也可以通過ONNX實(shí)現(xiàn)不同AI框架(如Pytorch、TensorFlow、Caffe2、PaddlePaddle等)之間的模型轉(zhuǎn)換。

Paddle模型轉(zhuǎn)ONNX,Python,深度學(xué)習(xí),paddle

最近臨時(shí)使用PaddlePaddle開發(fā)模型,需要將準(zhǔn)備好的模型轉(zhuǎn)換成ONNX格式,在此記錄一下。

Paddle轉(zhuǎn)ONNX庫(kù)需要用到paddle2onnx工具。在完成PaddlePaddle環(huán)境安裝的基礎(chǔ)上,通過如下命令安裝paddle2onnx:

pip install paddle2onnx

安裝完成后,就可以通過該工具完成paddle模型向onnx的轉(zhuǎn)換了。下面就用一個(gè)簡(jiǎn)單的例子來說明用法。

首先,定義一個(gè)我們自己的模型。比如,我們定義一個(gè)輕量級(jí)OCR檢測(cè)模型,該模型由三部分組成,分別是:一個(gè)輕量級(jí)特征提取網(wǎng)絡(luò)MobileNetV3、一個(gè)金字塔結(jié)構(gòu)FPN和一個(gè)Head,這三個(gè)結(jié)構(gòu)已經(jīng)在PaddleOCR開源代碼中定義好了,我們只需要自己將這幾部分拼成一個(gè)模型即可:

import paddle
from ppocr.modeling.heads.det_db_head import DBHead
from ppocr.modeling.backbones.det_mobilenet_v3 import MobileNetV3
from ppocr.modeling.necks.db_fpn import DBFPN

class MyPaddleOCR(paddle.nn.Layer):
    def __init__(self, out_channels):
        super(MyPaddleOCR, self).__init__()
        self.backbone = MobileNetV3()
        self.in_channels = self.backbone.out_channels
        self.fpn = DBFPN(in_channels=self.in_channels, out_channels=out_channels)
        self.db_head = DBHead(in_channels=out_channels)

    def forward(self, x):
        backbone_outs = self.backbone(x)
        fpn_outs = self.fpn(backbone_outs)
        head_outs = self.db_head(fpn_outs)
        return head_outs

網(wǎng)絡(luò)定義好之后,當(dāng)然要進(jìn)行模型訓(xùn)練,或者加載已知模型參數(shù),這部分略去,我們直接講如何將paddle模型轉(zhuǎn)換成onnx。

模型轉(zhuǎn)換需要用到paddle.onnx.export接口,像其他框架一樣,導(dǎo)出模型時(shí)也需要指定輸入數(shù)據(jù)的shape,在Paddle中,可以使用paddle.static.InputSpec來指定輸入數(shù)據(jù)的shape,調(diào)用流程如下:

paddle_ocr_model = MyPaddleOCR(out_channels=256)

# ......
# 省略模型訓(xùn)練或參數(shù)加載

# 定義輸出onnx文件路徑
onnx_path = 'paddle_ocr_det'

# 定義輸入數(shù)據(jù),包括shape、type、name
# 將某一維度設(shè)置為None,則該維度為動(dòng)態(tài)維度
#x_spec = paddle.static.InputSpec([None, 1, 640, 640], 'float32', 'x')
x_spec = paddle.static.InputSpec([1,3,640,640], 'float32', 'x')

# 調(diào)用paddle.onnx.export接口導(dǎo)出onnx模型
paddle.onnx.export(paddle_ocr_model, onnx_path, input_spec=[x_spec], opset_version=11)

好了,現(xiàn)在在當(dāng)前目錄下生成了paddle_ocr_det.onnx文件,讓我們用onnxruntime來運(yùn)行一下:

    import onnxruntime
    import numpy as np

    onnx_path = 'paddle_ocr_det.onnx'
    x = np.random.random((1, 3, 640, 640)).astype('float32')
    ort_sess = onnxruntime.InferenceSession(onnx_path)
    ort_inputs = {ort_sess.get_inputs()[0].name: x}
    ort_outs = ort_sess.run(None, ort_inputs)

    print(ort_outs[0].shape)

輸出結(jié)果的形狀為:?(1, 3, 640, 640),是OK的。

ps:如果環(huán)境中未安裝onnxruntime,需要先安裝一下,看自己的機(jī)器是否有GPU,選擇以下兩個(gè)命令安裝即可:

非GPU機(jī)器:

pip install onnxruntime

GPU機(jī)器:文章來源地址http://www.zghlxwxcb.cn/news/detail-785578.html

pip install onnxruntime-gpu

到了這里,關(guān)于Paddle模型轉(zhuǎn)ONNX的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 利用Anaconda安裝pytorch和paddle深度學(xué)習(xí)環(huán)境+pycharm安裝后不能調(diào)用pytorch和paddlepaddle框架

    利用Anaconda安裝pytorch和paddle深度學(xué)習(xí)環(huán)境+pycharm安裝后不能調(diào)用pytorch和paddlepaddle框架

    之前安裝后不能在添加pytorch和paddlepaddle框架 在終端中顯示pytorch和paddle在C盤但是安裝是安裝在J盤 卸載、刪除文件重新安裝后可以看到文件位置在J盤中 ?但是選擇時(shí)還是顯示Conda executable is not found 需要先在你自己下載Anaconda的路徑下找到Script目錄下的conda.exe,然后雙擊,就會(huì)出

    2024年01月22日
    瀏覽(26)
  • 【深度學(xué)習(xí)】【Opencv】【GPU】python/C++調(diào)用onnx模型【基礎(chǔ)】

    【深度學(xué)習(xí)】【Opencv】【GPU】python/C++調(diào)用onnx模型【基礎(chǔ)】

    提示:博主取舍了很多大佬的博文并親測(cè)有效,分享筆記邀大家共同學(xué)習(xí)討論 OpenCV是一個(gè)基于BSD許可發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫(kù)(開源),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上??梢詫ytorch中訓(xùn)練好的模型使用ONNX導(dǎo)出,再使用opencv中的dnn模塊直接進(jìn)行

    2024年02月04日
    瀏覽(24)
  • 【深度學(xué)習(xí)】【Opencv】【CPU】Python/C++調(diào)用onnx模型【基礎(chǔ)】

    【深度學(xué)習(xí)】【Opencv】【CPU】Python/C++調(diào)用onnx模型【基礎(chǔ)】

    提示:博主取舍了很多大佬的博文并親測(cè)有效,分享筆記邀大家共同學(xué)習(xí)討論 OpenCV是一個(gè)基于BSD許可發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫(kù)(開源),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上??梢詫ytorch中訓(xùn)練好的模型使用ONNX導(dǎo)出,再使用opencv中的dnn模塊直接進(jìn)行

    2024年02月04日
    瀏覽(20)
  • paddle模型定義

    2024年02月08日
    瀏覽(11)
  • [paddle]paddleseg中eiseg加載模型參數(shù)的模型下載地址

    以下內(nèi)容為2D圖片標(biāo)注模型下載及EISeg2D圖片標(biāo)注流程,具體如下: 在使用EISeg前,請(qǐng)先下載模型參數(shù)。EISeg開放了在COCO+LVIS、大規(guī)模人像數(shù)據(jù)、mapping_challenge,Chest X-Ray,MRSpineSeg,LiTS及百度自建質(zhì)檢數(shù)據(jù)集上訓(xùn)練的7個(gè)垂類方向模型,滿足通用場(chǎng)景、人像場(chǎng)景、建筑物標(biāo)注,醫(yī)

    2024年02月07日
    瀏覽(19)
  • 自然語(yǔ)言處理 Paddle NLP - 預(yù)訓(xùn)練語(yǔ)言模型及應(yīng)用

    自然語(yǔ)言處理 Paddle NLP - 預(yù)訓(xùn)練語(yǔ)言模型及應(yīng)用

    基礎(chǔ) 自然語(yǔ)言處理(NLP) 自然語(yǔ)言處理PaddleNLP-詞向量應(yīng)用展示 自然語(yǔ)言處理(NLP)-前預(yù)訓(xùn)練時(shí)代的自監(jiān)督學(xué)習(xí) 自然語(yǔ)言處理PaddleNLP-預(yù)訓(xùn)練語(yǔ)言模型及應(yīng)用 自然語(yǔ)言處理PaddleNLP-文本語(yǔ)義相似度計(jì)算(ERNIE-Gram) 自然語(yǔ)言處理PaddleNLP-詞法分析技術(shù)及其應(yīng)用 自然語(yǔ)言處理Pa

    2024年02月08日
    瀏覽(30)
  • Paddle筆記:PaddleOCR文字識(shí)別,簡(jiǎn)單實(shí)用,默認(rèn)訓(xùn)練模型識(shí)別度不錯(cuò)

    Paddle筆記:PaddleOCR文字識(shí)別,簡(jiǎn)單實(shí)用,默認(rèn)訓(xùn)練模型識(shí)別度不錯(cuò)

    ????????PaddleOCR是百度深度學(xué)習(xí)框架PaddlePaddle開源的OCR項(xiàng)目,旨在打造一套豐富、領(lǐng)先、且實(shí)用的OCR工具庫(kù),助力使用者訓(xùn)練出更好的模型,并應(yīng)用落地。PaddleOCR包含豐富的文本檢測(cè)、文本識(shí)別以及端到端算法。 ? ? ? ? 你可能用到的網(wǎng)址: Paddle官網(wǎng):飛槳PaddlePaddle-源于

    2024年02月16日
    瀏覽(24)
  • 自然語(yǔ)言處理 Paddle NLP - 基于預(yù)訓(xùn)練模型完成實(shí)體關(guān)系抽取

    自然語(yǔ)言處理 Paddle NLP - 基于預(yù)訓(xùn)練模型完成實(shí)體關(guān)系抽取

    基礎(chǔ) 自然語(yǔ)言處理(NLP) 自然語(yǔ)言處理PaddleNLP-詞向量應(yīng)用展示 自然語(yǔ)言處理(NLP)-前預(yù)訓(xùn)練時(shí)代的自監(jiān)督學(xué)習(xí) 自然語(yǔ)言處理PaddleNLP-預(yù)訓(xùn)練語(yǔ)言模型及應(yīng)用 自然語(yǔ)言處理PaddleNLP-文本語(yǔ)義相似度計(jì)算(ERNIE-Gram) 自然語(yǔ)言處理PaddleNLP-詞法分析技術(shù)及其應(yīng)用 自然語(yǔ)言處理Pa

    2024年02月10日
    瀏覽(24)
  • 人工智能學(xué)習(xí)框架—飛槳Paddle人工智能

    人工智能學(xué)習(xí)框架—飛槳Paddle人工智能

    機(jī)器學(xué)習(xí)的三要素:模型、學(xué)習(xí)策略、優(yōu)化算法。 當(dāng)我們用機(jī)器學(xué)習(xí)來解決一些模式識(shí)別任務(wù)時(shí),一般的流程包含以下幾個(gè)步驟: 淺層學(xué)習(xí) (Shallow Learning):不涉及特征學(xué)習(xí),其特征主要靠人工經(jīng)驗(yàn)或特征轉(zhuǎn)換方法來抽取。 底層特征VS高層語(yǔ)義:人們對(duì)文本、圖像的理解無(wú)法

    2024年02月12日
    瀏覽(8)
  • 解決paddle.fluid與python版本不匹配的問題:AttributeError: module ‘paddle.fluid‘ has no attribute ‘xxx‘

    解決paddle.fluid與python版本不匹配的問題:AttributeError: module ‘paddle.fluid‘ has no attribute ‘xxx‘

    今天跑paddle里的代碼,發(fā)現(xiàn)paddle里可以跑,但放到pycharm下面跑不了了,搗鼓了一下午,原來是包版本的問題,希望能對(duì)讀者有一點(diǎn)點(diǎn)用。 我原本所用的環(huán)境是python3.11,它的paddlepaddle包的版本是2.5,然后我去paddle官網(wǎng)上看我要用的代碼的配置環(huán)境(我在官網(wǎng)上可以跑通),打

    2024年02月03日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包