国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

沒(méi)有“中間商賺差價(jià)”, OpenVINO? 直接支持 PyTorch 模型對(duì)象

OpenCV學(xué)堂 ? 來(lái)源:OpenCV學(xué)堂 ? 2023-06-27 16:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

沒(méi)有“中間商賺差價(jià)”,OpenVINO直接支持 PyTorch 模型對(duì)象

背景

作為最熱門的開(kāi)源深度學(xué)習(xí)框架之一,PyTorch 的易用性和靈活性使其深受學(xué)術(shù)和研究界的喜愛(ài)。之前 OpenVINO 對(duì)于 PyTorch 模型的支持也僅僅停留在 ONNX 過(guò)渡階段,需要通過(guò)將 PyTorch 動(dòng)態(tài)模型導(dǎo)出為 ONNX 靜態(tài)格式后,才可以直接被 OpenVINO runtime 離線加載,雖然 PyTorch 也提供了官方的 torch.onnx.export 接口幫助開(kāi)發(fā)者導(dǎo)出 ONNX 模型,但畢竟有這么一個(gè)“中間商”在那里,其中很多額外的配置工作也為 OpenVINO 開(kāi)發(fā)者帶來(lái)了不便,諸如動(dòng)態(tài)/靜態(tài)輸入設(shè)定,以及 opset 版本設(shè)定等。

一、OpenVINO 直接支持 PyTorch 模型對(duì)象

bdd45d18-14c1-11ee-962d-dac502259ad0.png

隨著 OpenVINO 2023.0 版本的發(fā)布,OpenVINO 工具庫(kù)中預(yù)置了全新的 PyTorch 前端,為開(kāi)發(fā)者們提供了一條全新的 PyTorch 模型支持路徑,帶來(lái)更友好的用戶體驗(yàn)——OpenVINO 的 mo 工具可以直接將 PyTorch 模型對(duì)象轉(zhuǎn)化為 OpenVINO 的模型對(duì)象,開(kāi)發(fā)者可以不需要將 ONNX 模型作為中間過(guò)渡。

import torchvision import torch from openvino.tools.mo import convert_model model = torchvision.models.resnet50(pretrained=True) ov_model=convert_model(model)

對(duì)比以 ONNX 作為中間過(guò)度的方式,新 PyTorch 前端有以下特點(diǎn):

bded37a2-14c1-11ee-962d-dac502259ad0.png

目前支持的 PyTorch 模型對(duì)象有:

· torch.nn.Module

· torch.jit.ScriptModule

· torch.jit.ScriptFunction

在 OpenVINO 內(nèi)部,PyTorch 前端基于 TorchScript 進(jìn)行模型導(dǎo)出,而 TorchScript 支持兩種模型導(dǎo)出模式,一種稱為 Tracing,一種稱為 Scripting。其中 Tracing 指的是 PyTorch 在模型運(yùn)行時(shí),追蹤運(yùn)行經(jīng)過(guò)的模塊算子,實(shí)時(shí)構(gòu)建計(jì)算流圖,并最終總結(jié)為一種中間表示,Trace 是個(gè)雙刃劍,好處是用戶無(wú)需了解 Python 代碼個(gè)中細(xì)節(jié),無(wú)論是 Function、Module 還是 Generators、Coroutines,Tracing 都會(huì)忠實(shí)地記錄下經(jīng)過(guò)的 Tensor 以及 Tensor Function,非常適用于不涉及數(shù)據(jù)相關(guān)控制流的簡(jiǎn)單模塊和功能,例如標(biāo)準(zhǔn)卷積神經(jīng)網(wǎng)絡(luò),壞處就在于 Tracing 不能感知控制流和計(jì)算圖的動(dòng)態(tài),如 if 語(yǔ)句或循環(huán)。比如他會(huì)把循環(huán)展開(kāi),一方面可能可以增加編譯優(yōu)化的空間,另一方面如果該循環(huán)在不同 infer 的時(shí)候是動(dòng)態(tài)變長(zhǎng)的,那么 Tracing 不能感知到這一點(diǎn),只會(huì)將 Tracing 時(shí)候的循環(huán)記錄下來(lái)。為了轉(zhuǎn)換包含依賴于數(shù)據(jù)的控制流的模塊和函數(shù),提供了一種 Scripting 機(jī)制,Scripting 從 Python 源代碼級(jí)別進(jìn)行解析,而非在運(yùn)行時(shí)構(gòu)建。Scripting 會(huì)去理解所有的 code,真正像一個(gè)編譯器一樣去進(jìn)行語(yǔ)法分析等操作。Scripting 相當(dāng)于一個(gè)嵌入在 Python/Pytorch 的DSL,其語(yǔ)法只是 PyTorch 語(yǔ)法的子集,這意味著存在一些 op 和語(yǔ)法 Scripting 不支持,這樣在編譯的時(shí)候就會(huì)遇到問(wèn)題。

在剛剛的例子中 PyTorch 前端使用 Scripting 進(jìn)行模型導(dǎo)出,如果想使用 Tracing 的方式,可以在接口中新增一個(gè) example_input 參數(shù),此時(shí) PyTorch 前端會(huì)優(yōu)先調(diào)用 Tracing 的方式,當(dāng) Tracing 的方式失敗后,再調(diào)用 Scripting 方式。

import torchvision import torch from openvino.tools.mo import convert_model model = torchvision.models.resnet50(pretrained=True) ov_model=convert_model(model,example_input=torch.zeros(1,3,100,100))

目前 examle_input 支持的數(shù)據(jù)格式有:

· openvino.runtime.Tensor

· torch.Tensor

· np.ndarray

· listortuplewith tensors (openvino.runtime.Tensor/torch.Tensor/np.ndarray)

· dictionarywhere key is the input name, value is the tensor (openvino.runtime.Tensor/torch.Tensor/np.ndarray)

值得注意的是,以上兩個(gè)例子導(dǎo)出的均為動(dòng)態(tài)輸入模型對(duì)象,如果想指定模型的輸入 shape,可以再次添加額外的參數(shù) input_shape/input, 將輸入 shape 作為參數(shù)傳入,選其一即可。案例可參考以下的實(shí)戰(zhàn)部分。

最后,如果開(kāi)發(fā)者希望導(dǎo)出靜態(tài) IR 文件以便后續(xù)使用,也可以調(diào)用以下接口,將 OpenVINO 的模型對(duì)象進(jìn)行序列化:

serialize(ov_model, str(ir_model_xml))

二、BERT 模型案例實(shí)戰(zhàn)

接下來(lái)我們通過(guò)一個(gè)實(shí)例來(lái)看下如何完成從 BERT 模型轉(zhuǎn)化到量化的全過(guò)程。

1. 獲取 PyTorch 模型對(duì)象

torch_model = BertForSequenceClassification.from_pretrained(PRETRAINED_MODEL_DIR)

2. 設(shè)置模型參數(shù)并轉(zhuǎn)化為 OpenVINO 模型對(duì)象

由于 BERT 是一個(gè)多輸入模型,這里額外添加了一個(gè) input=input_info 參數(shù),可以用來(lái)指定多輸入模型中每一個(gè) input 的 shape 以及數(shù)據(jù)類型。

input_shape = PartialShape([1, -1]) input_info = [("input_ids", input_shape, np.int64),("attention_mask", input_shape, np.int64),("token_type_ids", input_shape, np.int64)] default_input = torch.ones(1, MAX_SEQ_LENGTH, dtype=torch.int64) inputs = { "input_ids": default_input, "attention_mask": default_input, "token_type_ids": default_input, } model=convert_model(torch_model,example_input=inputs,input=input_info)

3. 準(zhǔn)備校驗(yàn)數(shù)據(jù)集,并啟動(dòng)量化

上一步中獲得的 model 為 openvino.runtime.Model 類型,可以直接被 NNCF 工具加載

calibration_dataset = nncf.Dataset(data_source, transform_fn) # Quantize the model. By specifying model_type, we specify additional transformer patterns in the model. quantized_model = nncf.quantize(model, calibration_dataset, model_type=ModelType.TRANSFORMER)

4. 編譯量化后的模型對(duì)象,并進(jìn)行推理

compiled_quantized_model = core.compile_model(model=quantized_model, device_name="CPU") output_layer = compiled_quantized_model.outputs[0] result = compiled_quantized_model(inputs)[output_layer] result = np.argmax(result) print(f"Text 1: {sample['sentence1']}") print(f"Text 2: {sample['sentence2']}") print(f"Thesamemeaning:{'yes'ifresult==1else'no'}")

最終結(jié)果如下:

Text 1: Wal-Mart said it would check all of its million-plus domestic workers to ensure they were legally employed . Text 2: It has also said it would review all of its domestic employees more than 1 million to ensure they have legal status . Thesamemeaning:yes

完整實(shí)例和性能精度比較,可以參考:

https://github.com/openvinotoolkit/openvino_notebooks/blob/main/notebooks/105-language-quantize-bert/105-language-quantize-bert.ipynb

三、總結(jié)

作為近期發(fā)布的最新版本,OpenVINO 2023.0 中的 mo 工具可以在不需要通過(guò) ONNX 中間過(guò)渡的情況下,直接將 PyTorch 模型對(duì)象轉(zhuǎn)化為 OpenVINO 對(duì)象,免去開(kāi)發(fā)者離線轉(zhuǎn)化和額外配置的過(guò)程,帶來(lái)更友好的用戶體驗(yàn)。鑒于該功能是預(yù)發(fā)布狀態(tài),可能存在部分算子不支持的情況,此時(shí),開(kāi)發(fā)者依舊可以使用之前的路徑,依托 ONNX 前端進(jìn)行 PyTorch 模型的轉(zhuǎn)換。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3751

    瀏覽量

    52099
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5598

    瀏覽量

    124396
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    813

    瀏覽量

    14850

原文標(biāo)題:沒(méi)有“中間商賺差價(jià)”, OpenVINO? 直接支持 PyTorch 模型對(duì)象

文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    為什么Caffe模型可以直接OpenVINO?工具套件推斷引擎API一起使用,而無(wú)法轉(zhuǎn)換為中間表示 (IR)?

    推斷 Caffe 模型直接基于 英特爾? 神經(jīng)電腦棒 2 (英特爾? NCS2)。 無(wú)法確定為什么 Caffe 模型可以直接OpenVINO
    發(fā)表于 03-05 06:31

    使用OpenVINO? 2021.4將經(jīng)過(guò)訓(xùn)練的自定義PyTorch模型加載為IR格式時(shí)遇到錯(cuò)誤怎么解決?

    使用 OpenVINO? 2021.4 將經(jīng)過(guò)訓(xùn)練的自定義 PyTorch 模型加載為 IR 格式時(shí)遇到錯(cuò)誤: RuntimeError: [ GENERAL_ERROR ] Failed
    發(fā)表于 03-05 08:40

    如何使用OpenVINO?運(yùn)行對(duì)象檢測(cè)模型

    無(wú)法確定如何使用OpenVINO?運(yùn)行對(duì)象檢測(cè)模型
    發(fā)表于 03-06 07:20

    原廠直供TF卡、SD卡、U盤

    `本司自主品牌:偲鴿; 看圖說(shuō)話,只做正品,價(jià)格優(yōu)美! 避免中間商差價(jià),現(xiàn)原廠直供,需要的朋友滴滴曹生***,拿樣測(cè)試!`
    發(fā)表于 03-19 11:03

    怎樣使用PyTorch Hub去加載YOLOv5模型

    使用 PyTorch Hub 加載自定義 20 類VOC訓(xùn)練的YOLOv5s 模型'best.pt'。TensorRT、ONNX 和 OpenVINO 模型
    發(fā)表于 07-22 16:02

    Pytorch模型轉(zhuǎn)換為DeepViewRT模型時(shí)出錯(cuò)怎么解決?

    的 ONNX 模型。 但是,轉(zhuǎn)換過(guò)程終止時(shí)出現(xiàn)一條無(wú)用的錯(cuò)誤消息:“ \'NoneType\' 類型的對(duì)象沒(méi)有 len() ”。 進(jìn)行轉(zhuǎn)換時(shí),我使用了 eIQ 門戶中的模型工具。
    發(fā)表于 06-09 06:42

    如何將PyTorch模型OpenVINO trade結(jié)合使用?

    無(wú)法確定如何轉(zhuǎn)換 PyTorch 掩碼 R-CNN 模型以配合OpenVINO?使用。
    發(fā)表于 08-15 07:04

    沒(méi)有中間商差價(jià) 筆記本機(jī)械革命S1官網(wǎng)神劵低價(jià)巨給力

    資本驅(qū)動(dòng)的消費(fèi)市場(chǎng),是通過(guò)一級(jí)一級(jí)利益剝削維持運(yùn)作的。用咱們老百姓的話講,10塊錢的東西從廠子里出來(lái),讓中間商倒賣幾手就成了20塊,批發(fā)的貨永遠(yuǎn)比零售的便宜,也是這個(gè)道理。一般的日用消耗品都是
    發(fā)表于 06-29 10:27 ?1188次閱讀

    AMD官方開(kāi)始直賣顯卡及處理器

    “開(kāi)張了,開(kāi)張了,AMD官方直賣網(wǎng)上線,沒(méi)有中間商差價(jià)”……
    發(fā)表于 07-12 15:36 ?2139次閱讀

    英偉達(dá)和AMD等廠商直接銷售新產(chǎn)品并砍掉中間商

    PS5、XSX和新30系顯卡的熱銷以及疫情影響下的供貨不足,導(dǎo)致了大量黃牛的出現(xiàn),將新硬件的價(jià)格炒高。近日,id Software的聯(lián)合創(chuàng)始人John Carmack認(rèn)為,鑒于全球硬件短缺,為了透明起見(jiàn),索尼、微軟、英偉達(dá)和AMD這些大廠應(yīng)該直接銷售新產(chǎn)品,并砍掉中間商
    的頭像 發(fā)表于 02-22 09:16 ?1809次閱讀

    大牛建議廠商可砍掉中間商直接銷售顯卡等

    PS5、XSX和新30系顯卡的熱銷以及疫情影響下的供貨不足,導(dǎo)致了大量黃牛的出現(xiàn),將新硬件的價(jià)格炒高。近日,id Software的聯(lián)合創(chuàng)始人John Carmack認(rèn)為,鑒于全球硬件短缺,為了透明起見(jiàn),索尼、微軟、英偉達(dá)和AMD這些大廠應(yīng)該直接銷售新產(chǎn)品,并砍掉中間商
    的頭像 發(fā)表于 02-22 10:58 ?1748次閱讀

    解析OpenVINO? + SSD 實(shí)時(shí)對(duì)象檢測(cè)

    。 SSD對(duì)象檢測(cè)模型 對(duì)象檢測(cè)是計(jì)算機(jī)視覺(jué)核心任務(wù)之一,也是最常見(jiàn)與應(yīng)用最廣泛的視覺(jué)場(chǎng)景。OpenVINO 已經(jīng)提供了以下通用場(chǎng)景下的對(duì)象
    的頭像 發(fā)表于 05-18 09:35 ?2667次閱讀
    解析<b class='flag-5'>OpenVINO</b>? + SSD 實(shí)時(shí)<b class='flag-5'>對(duì)象</b>檢測(cè)

    自訓(xùn)練Pytorch模型使用OpenVINO?優(yōu)化并部署在AI愛(ài)克斯開(kāi)發(fā)板

    本文章將依次介紹如何將 Pytorch 自訓(xùn)練模型經(jīng)過(guò)一系列變換變成 OpenVINO IR 模型形式,而后使用 OpenVINO Pyth
    的頭像 發(fā)表于 05-26 10:23 ?1713次閱讀
    自訓(xùn)練<b class='flag-5'>Pytorch</b><b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>?優(yōu)化并部署在AI愛(ài)克斯開(kāi)發(fā)板

    如何將Pytorch自訓(xùn)練模型變成OpenVINO IR模型形式

    本文章將依次介紹如何將Pytorch自訓(xùn)練模型經(jīng)過(guò)一系列變換變成OpenVINO IR模型形式,而后使用OpenVINO Python AP
    的頭像 發(fā)表于 06-07 09:31 ?3253次閱讀
    如何將<b class='flag-5'>Pytorch</b>自訓(xùn)練<b class='flag-5'>模型</b>變成<b class='flag-5'>OpenVINO</b> IR<b class='flag-5'>模型</b>形式

    ETHERCAT和PROFINET的中間商,不差價(jià),只傳數(shù)據(jù)

    ETHERCAT和PROFINET的中間商,不差價(jià),只傳數(shù)據(jù) 在現(xiàn)代醫(yī)院的數(shù)字化手術(shù)室中,手術(shù)床、無(wú)影燈、C型臂等設(shè)備的精準(zhǔn)、穩(wěn)定與協(xié)同運(yùn)行,是保障手術(shù)成功、提升醫(yī)療效率的關(guān)鍵。這些設(shè)備往往
    的頭像 發(fā)表于 10-30 14:23 ?214次閱讀
    ETHERCAT和PROFINET的<b class='flag-5'>中間商</b>,不<b class='flag-5'>賺</b><b class='flag-5'>差價(jià)</b>,只傳數(shù)據(jù)