最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytorch模型轉換為onnx可視化(使用netron)

 更新時間:2023年05月18日 09:44:53   作者:michaelchengjl  
netron 是一個非常好用的網(wǎng)絡結構可視化工具,但是netron對pytorch模型的支持還不成熟,這篇文章主要介紹了pytorch模型轉換為onnx,并使用netron可視化,需要的朋友可以參考下

pytorch模型轉換為onnx,并使用netron可視化

netron 是一個非常好用的網(wǎng)絡結構可視化工具。

但是netron對pytorch模型的支持還不成熟。自己試的效果是生成的模型圖沒有連線。

目前支持的框架 根據(jù)netron的github

目前netron支持:

ONNX (.onnx, .pb, .pbtxt)
Keras (.h5, .keras)
Core ML (.mlmodel)
Caffe (.caffemodel, .prototxt)
Caffe2 (predict_net.pb, predict_net.pbtxt)
Darknet (.cfg)
MXNet (.model, -symbol.json)
ncnn (.param) 
TensorFlow Lite (.tflite)
PaddlePaddle (.zip, model)
TensorFlow.js
CNTK (.model, .cntk)

并且實驗性支持:

TorchScript (.pt, .pth)
PyTorch (.pt, .pth)
Torch (.t7)
Arm NN (.armnn)
BigDL (.bigdl, .model) 
Chainer (.npz, .h5)
Deeplearning4j (.zip)
MediaPipe (.pbtxt)
ML.NET (.zip), MNN (.mnn)
OpenVINO (.xml)
scikit-learn (.pkl)
TensorFlow (.pb, .meta, .pbtxt, .ckpt, .index)

Netron supports ONNX, TensorFlow Lite, Caffe, Keras, Darknet, PaddlePaddle, ncnn, MNN, Core ML, RKNN, MXNet, MindSpore Lite, TNN, Barracuda, Tengine, CNTK, TensorFlow.js, Caffe2 and UFF.

Netron has experimental support for PyTorch, TensorFlow, TorchScript, OpenVINO, Torch, Vitis AI, kmodel, Arm NN, BigDL, Chainer, Deeplearning4j, MediaPipe, ML.NET and scikit-learn.

這里就有一個把 .pth 模型轉化為 .onnx 模型。

Pytorch模型轉onnx

model = resnet18(pretrained=True)
# print(model)
# old_net_path = "resnet18.pth"
new_net_path = "./resnet18.onnx"
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# 導入模型
net = model.to(device)
# net.load_state_dict(torch.load(old_net_path, map_location=device))
net.eval()
input = torch.randn(1, 3, 224, 224).to(device)  # BCHW  其中Batch必須為1,因為測試時一般為1,尺寸HW必須和訓練時的尺寸一致
torch.onnx.export(net, input, new_net_path, verbose=False)

torch.onnx.export(model, args, f, export_params=True, verbose=False, training=False, input_names=None, output_names=None)

參數(shù):

model(torch.nn.Module)-要被導出的模型
args(參數(shù)的集合)-模型的輸入,例如,這種model(*args)方式是對模型的有效調用。任何非Variable參數(shù)都將硬編碼到導出的模型中;任何Variable參數(shù)都將成為導出的模型的輸入,并按照他們在args中出現(xiàn)的順序輸入。如果args是一個Variable,這等價于用包含這個Variable的1-ary元組調用它。(注意:現(xiàn)在不支持向模型傳遞關鍵字參數(shù)。)
f-一個類文件的對象(必須實現(xiàn)文件描述符的返回)或一個包含文件名字符串。一個二進制Protobuf將會寫入這個文件中。
export_params(bool,default True)-如果指定,所有參數(shù)都會被導出。如果你只想導出一個未訓練的模型,就將此參數(shù)設置為False。在這種情況下,導出的模型將首先把所有parameters作為參arguments,順序由model.state_dict().values()指定。
verbose(bool,default False)-如果指定,將會輸出被導出的軌跡的調試描述。
training(bool,default False)-導出訓練模型下的模型。目前,ONNX只面向推斷模型的導出,所以一般不需要將該項設置為True。
input_names(list of strings, default empty list)-按順序分配名稱到圖中的輸入節(jié)點。
output_names(list of strings, default empty list)-按順序分配名稱到圖中的輸出節(jié)點。

文件中保存模型結構和權重參數(shù)

import torch
torch_model = torch.load("save.pt") # pytorch模型加載
batch_size = 1  #批處理大小
input_shape = (3,244,244)   #輸入數(shù)據(jù)
# set the model to inference mode
torch_model.eval()
x = torch.randn(batch_size,*input_shape)		# 生成張量
export_onnx_file = "test.onnx"					# 目的ONNX文件名
torch.onnx.export(torch_model,
                    x,
                    export_onnx_file,
                    opset_version=10,
                    do_constant_folding=True,	# 是否執(zhí)行常量折疊優(yōu)化
                    input_names=["input"],		# 輸入名
                    output_names=["output"],	# 輸出名
                    dynamic_axes={"input":{0:"batch_size"},		# 批處理變量
                    "output":{0:"batch_size"}})

dynamic_axes字段用于批處理.若不想支持批處理或固定批處理大小,移除dynamic_axes字段即可.

文件中只保留模型權重

import torch
torch_model = selfmodel()  					# 由研究員提供python.py文件
batch_size = 1 								# 批處理大小
input_shape = (3, 244, 244) 				# 輸入數(shù)據(jù)
# set the model to inference mode
torch_model.eval()
x = torch.randn(batch_size,*input_shape) 	# 生成張量
export_onnx_file = "test.onnx" 				# 目的ONNX文件名
torch.onnx.export(torch_model,
                    x,
                    export_onnx_file,
                    opset_version=10,
                    do_constant_folding=True,	# 是否執(zhí)行常量折疊優(yōu)化
                    input_names=["input"],		# 輸入名
                    output_names=["output"],	# 輸出名
                    dynamic_axes={"input":{0:"batch_size"},	# 批處理變量
                    "output":{0:"batch_size"}})

到此這篇關于pytorch模型轉換為onnx可視化(使用netron)的文章就介紹到這了,更多相關pytorch模型轉onnx可視化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • pycharm重置設置,恢復默認設置的方法

    pycharm重置設置,恢復默認設置的方法

    今天小編就為大家分享一篇pycharm重置設置,恢復默認設置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python源碼學習之PyType_Type和PyBaseObject_Type詳解

    Python源碼學習之PyType_Type和PyBaseObject_Type詳解

    今天給大家?guī)淼氖顷P于Python源碼的相關知識學習,文章圍繞著PyType_Type和PyBaseObject_Type展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python中使用 unittest.TestCase單元測試的用例詳解

    python中使用 unittest.TestCase單元測試的用例詳解

    python 在unittest.TestCase 中提高了很多斷言方法,這篇文章主要介紹了python中使用 unittest.TestCase 進行單元測試的操作方法,需要的朋友可以參考下
    2021-08-08
  • PyTorch的安裝與使用示例詳解

    PyTorch的安裝與使用示例詳解

    本文介紹了熱門AI框架PyTorch的conda安裝方案,與簡單的自動微分示例,并順帶講解了一下PyTorch開源Github倉庫中的兩個Issue內容,需要的朋友可以參考下
    2024-05-05
  • python numpy和list查詢其中某個數(shù)的個數(shù)及定位方法

    python numpy和list查詢其中某個數(shù)的個數(shù)及定位方法

    今天小編就為大家分享一篇python numpy和list查詢其中某個數(shù)的個數(shù)及定位方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 帶你詳細了解Python GUI編程框架

    帶你詳細了解Python GUI編程框架

    今天小編就為大家分享一篇python 實現(xiàn)GUI(圖形用戶界面)編程詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-08-08
  • 基于Python實現(xiàn)生成隨機手機號碼

    基于Python實現(xiàn)生成隨機手機號碼

    這篇文章主要介紹了生成隨機中國手機號碼的Python代碼實現(xiàn),本文提供了基礎版本和更精確的版本,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2026-02-02
  • python?虛擬環(huán)境詳解

    python?虛擬環(huán)境詳解

    這篇文章主要為大家介紹了python?虛擬環(huán)境,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-12-12
  • python創(chuàng)建進程fork用法

    python創(chuàng)建進程fork用法

    這篇文章主要介紹了python創(chuàng)建進程fork用法,實例分析了Python使用fork創(chuàng)建進程的使用方法,需要的朋友可以參考下
    2015-06-06
  • 現(xiàn)代Python編程的四個關鍵點你知道幾個

    現(xiàn)代Python編程的四個關鍵點你知道幾個

    這篇文章主要為大家詳細介紹了Python編程的四個關鍵點,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評論

杂多县| 义乌市| 伊川县| 庆城县| 出国| 阳原县| 凤山市| 新乐市| 乐都县| 阿瓦提县| 彭阳县| 阿克陶县| 大渡口区| 濉溪县| 彩票| 平舆县| 盘山县| 临高县| 兴安盟| 天峻县| 滨海县| 亚东县| 寿光市| 泸定县| 颍上县| 宜川县| 南城县| 南部县| 西宁市| 高清| 汾阳市| 郓城县| 阳山县| 和硕县| 锡林郭勒盟| 五家渠市| 田阳县| 平南县| 延长县| 灵山县| 五指山市|