效果
Netron效果
项目
代码
using Microsoft.ML.OnnxRuntime;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;namespace Onnx_Demo
{public partial class frmMain : Form{public frmMain(){InitializeComponent();}string fileFilter = "*.*|*.onnx;";string model_path;StringBuilder sb = new StringBuilder();InferenceSession onnx_session;private void button1_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = fileFilter;if (ofd.ShowDialog() != DialogResult.OK) return;txtInfo.Text = "";model_path = ofd.FileName;txtPath.Text = model_path;txtInfo.Text = "正在读取,请稍后……";Application.DoEvents();ShowInfo(model_path);}void ShowInfo(string model_path){try{onnx_session = new InferenceSession(model_path);}catch (Exception ex){MessageBox.Show("读取模型异常:" + ex.Message);}sb.Clear();//Model Propertiessb.AppendLine("Model Properties");sb.AppendLine("-------------------------");Dictionary<string, string> CustomMetadataMap = onnx_session.ModelMetadata.CustomMetadataMap;foreach (string key in CustomMetadataMap.Keys){sb.AppendLine(String.Format("{0}:{1}",key, CustomMetadataMap[key])) ;}sb.AppendLine("---------------------------------------------------------------");IReadOnlyList<string> InputNames = onnx_session.InputNames;IReadOnlyDictionary<string, NodeMetadata> InputMetadata = onnx_session.InputMetadata;//Inputssb.AppendLine("");sb.AppendLine("Inputs");sb.AppendLine("-------------------------");foreach (var item in InputMetadata){sb.AppendLine("name:" + item.Key);NodeMetadata nmData= item.Value;int[] dim = nmData.Dimensions;sb.AppendLine("tensor:" + nmData.ElementDataType.ToString()+"["+ String.Join(", ", dim)+"]");}sb.AppendLine("---------------------------------------------------------------");IReadOnlyList<string> OutputNames = onnx_session.OutputNames;IReadOnlyDictionary<string, NodeMetadata> OutputMetadata = onnx_session.OutputMetadata;//Outputssb.AppendLine("");sb.AppendLine("Outputs");sb.AppendLine("-------------------------");foreach (var item in OutputMetadata){sb.AppendLine("name:" + item.Key);NodeMetadata nmData = item.Value;int[] dim = nmData.Dimensions;sb.AppendLine("tensor:" + nmData.ElementDataType.ToString() + "[" + String.Join(", ", dim) + "]");}sb.AppendLine("---------------------------------------------------------------");txtInfo.Text = sb.ToString();}private void Form1_Load(object sender, EventArgs e){}}
}
下载
可执行程序exe包下载
源码下载