C# OpenVINO 模型信息查看工具

news2025/1/11 14:00:33

目录

效果

支持模型

项目

代码

下载


C# OpenVINO 模型信息查看工具

效果

支持模型

ONNX format (*.onnx)
PDPD (*.pdmodel)
TF (*.pb)
TFLite (*.tflite) 

项目

代码

using Sdcb.OpenVINO;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace OpenVINO_Demo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /*
        模型可选类型
        ONNX format (*.onnx)
        PDPD (*.pdmodel)
        TF (*.pb)
        TFLite (*.tflite)
         */
        string fileFilter = "*.*|*.onnx;*.pdmodel;*.pb;*.tflite;*.tiff;";

        StringBuilder sb = new StringBuilder();
        string model_path = "";

        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();

            sb.Clear();
            txtInfo.Text = "";

            try
            {
                var v = OVCore.Version.ToString();
                sb.AppendLine(v);
                sb.AppendLine("---------------------------------------------------------------");
                var ad = OVCore.Shared.AvailableDevices;
                sb.AppendLine("本机可用设备");
                foreach (var item in ad)
                {
                    sb.AppendLine(item.ToString());
                }
                sb.AppendLine("---------------------------------------------------------------");

                Model rawModel = OVCore.Shared.ReadModel(model_path);
                //Inputs
                sb.AppendLine("");
                sb.AppendLine("Inputs");
                sb.AppendLine("-------------------------");

                IOPort temp;
                Dimension[] dim;
                IEnumerator<IOPort> items = rawModel.Inputs.GetEnumerator();
                while (items.MoveNext())
                {
                    temp = items.Current;
                    sb.AppendLine("name:" + temp.Name);
                    dim = temp.PartialShape.Dimensions;
                    sb.AppendLine("tensor:" + temp.ElementType + "[" + String.Join(", ", dim) + "]");
                    sb.AppendLine("");
                }
                sb.AppendLine("---------------------------------------------------------------");

                //Outputs
                sb.AppendLine("");
                sb.AppendLine("Outputs");
                sb.AppendLine("-------------------------");
                items = rawModel.Outputs.GetEnumerator();
                while (items.MoveNext())
                {
                    temp = items.Current;
                    sb.AppendLine("name:" + temp.Name);
                    dim = temp.PartialShape.Dimensions;
                    sb.AppendLine("tensor:" + temp.ElementType + "[" + String.Join(", ", dim) + "]");
                    sb.AppendLine("");
                }
                sb.AppendLine("---------------------------------------------------------------");
                txtInfo.Text = sb.ToString();

            }
            catch (Exception ex)
            {
                txtInfo.Text = "加载模型出错,请选择正确的模型!\r\n";
                txtInfo.Text += "错误信息:\r\n";
                txtInfo.Text += ex.Message;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}

using Sdcb.OpenVINO;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace OpenVINO_Demo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /*
        模型可选类型
        ONNX format (*.onnx)
        PDPD (*.pdmodel)
        TF (*.pb)
        TFLite (*.tflite)
         */
        string fileFilter = "*.*|*.onnx;*.pdmodel;*.pb;*.tflite;*.tiff;";

        StringBuilder sb = new StringBuilder();
        string model_path = "";

        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();

            sb.Clear();
            txtInfo.Text = "";

            try
            {
                var v = OVCore.Version.ToString();
                sb.AppendLine(v);
                sb.AppendLine("---------------------------------------------------------------");
                var ad = OVCore.Shared.AvailableDevices;
                sb.AppendLine("本机可用设备");
                foreach (var item in ad)
                {
                    sb.AppendLine(item.ToString());
                }
                sb.AppendLine("---------------------------------------------------------------");

                Model rawModel = OVCore.Shared.ReadModel(model_path);
                //Inputs
                sb.AppendLine("");
                sb.AppendLine("Inputs");
                sb.AppendLine("-------------------------");

                IOPort temp;
                Dimension[] dim;
                IEnumerator<IOPort> items = rawModel.Inputs.GetEnumerator();
                while (items.MoveNext())
                {
                    temp = items.Current;
                    sb.AppendLine("name:" + temp.Name);
                    dim = temp.PartialShape.Dimensions;
                    sb.AppendLine("tensor:" + temp.ElementType + "[" + String.Join(", ", dim) + "]");
                    sb.AppendLine("");
                }
                sb.AppendLine("---------------------------------------------------------------");

                //Outputs
                sb.AppendLine("");
                sb.AppendLine("Outputs");
                sb.AppendLine("-------------------------");
                items = rawModel.Outputs.GetEnumerator();
                while (items.MoveNext())
                {
                    temp = items.Current;
                    sb.AppendLine("name:" + temp.Name);
                    dim = temp.PartialShape.Dimensions;
                    sb.AppendLine("tensor:" + temp.ElementType + "[" + String.Join(", ", dim) + "]");
                    sb.AppendLine("");
                }
                sb.AppendLine("---------------------------------------------------------------");
                txtInfo.Text = sb.ToString();

            }
            catch (Exception ex)
            {
                txtInfo.Text = "加载模型出错,请选择正确的模型!\r\n";
                txtInfo.Text += "错误信息:\r\n";
                txtInfo.Text += ex.Message;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}

下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1282138.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker部署typecho博客

文章目录 1.安装git2.安装compose3.拉取仓库4.创建目录5.配置文件修改6.启动容器7.修改MYSQL数据库8.安装成功9.参考GitHub文档 1.安装git 安装git yum -y install git2.安装compose &#xff08;docker安装参考&#xff1a;docker基本知识&#xff09; 确保已经安装了 Doc…

数组中第k个最大元素(优先队列)

class Solution { public:int findKthLargest(vector<int>& s, int k) {priority_queue<int> pq;for(int i 0; i < s.size(); i){pq.push(s[i]);}for(int i 1; i < k; i){pq.pop();}return pq.top();} }; priority_queue<int> pq为优先队列 s.s…

傅里叶变换及其在机器学习中的应用

​​​​​​​一、介绍 傅立叶变换是一种数学技术&#xff0c;在各个科学和工程领域发挥着关键作用&#xff0c;其应用范围从信号处理到量子力学。近年来&#xff0c;它在机器学习领域发现了新的意义。本文探讨了傅里叶变换的基础知识及其在机器学习应用中日益增长的重要性。 …

万界星空科技注塑mes

塑料制品产业虽然有一定的规模和基础&#xff0c;但存在自主创新能力低、“散小乱”、品牌效应不明显、行业创新能力与庞大的产业不匹配或支撑不足等问题&#xff0c;塑料加工行业还处在质量型产业的初期&#xff0c;抗风险能力低。注塑行业6大痛点&#xff1a; 1.生产效率低 注…

堆排序(C语言)

前言 在上一篇内容&#xff1a;大小堆的实现&#xff08;C语言&#xff09;&#xff0c;我们实现了关于创建大小堆的各函数与实现。但是如果突然要使用一个堆排序但是此时并没有一个现成的堆&#xff0c;这就需要花费时间去新建实现堆的插入删除这些操作从而实现一个堆&#xf…

如何有效进行主数据治理

在企业信息化建设不断推进、逐渐进行数字化转型的今天&#xff0c;几乎所有的企业都卷入到数据及其处理&#xff08;数据收集、存储、检索、传输、分析和表示&#xff09;的浪潮中&#xff0c;数据已成为重要生产要素和无形资产&#xff0c;针对主数据的全生命周期管理迫在眉睫…

老司机带你一课学透,核心分布式事务框架之Alibaba Seata框架经验总结

在现代分布式系统中&#xff0c;保证数据的一致性和可靠性是一项重要的挑战。Alibaba Seata是一款开源的分布式事务解决方案&#xff0c;它提供了强大的支持&#xff0c;帮助开发者处理分布式事务。本文将向您介绍Alibaba Seata框架&#xff0c;并分享一些使用该框架的经验总结…

Java零基础——SpringSecurity篇

1.认证授权的基础概念 1.1 什么是认证&#xff08;登录&#xff09; 进入移动互联网时代&#xff0c;大家每天都在刷手机&#xff0c;常用的软件有微信、支付宝、头条等&#xff0c;下边拿微信来举例子说明认证相关的基本概念&#xff0c;在初次使用微信前需要注册成为微信用户…

31名!美创科技再次入选《中国网络安全企业100强》

12月1日&#xff0c;安全牛联合中国计算机学会抗恶劣环境计算机专业委员会、信息产业信息安全测评中心正式发布第十一版《中国网络安全企业100强》&#xff08;以下简称“100强”&#xff09;。 美创科技再次入选“中国网络安全企业100强”&#xff0c;位列31名&#xff08;数据…

07、基于LunarLander登陆器的强化学习案例(含PYTHON工程)

07、基于LunarLander登陆器的强化学习&#xff08;含PYTHON工程&#xff09; 开始学习机器学习啦&#xff0c;已经把吴恩达的课全部刷完了&#xff0c;现在开始熟悉一下复现代码。全部工程可从最上方链接下载。 基于TENSORFLOW2.10 0、实践背景 gym的LunarLander是一个用于…

无需服务器,无需魔法,拥有一个微信机器人就是这么简单

前情提要 还没看过的朋友可以看一下上一篇文章《拥有一个微信机器人总共需要几步&#xff1f;》在这篇文章里&#xff0c;我们提到&#xff0c;创建微信机器人需要一个大前提--你得有一台服务器。现在&#xff0c;不再需要了&#xff01;没错&#xff0c;上一篇提到的Serverles…

Python爬虫:使用Scrapy框架进行高效爬取

Python爬虫可使用的架构有很多&#xff0c;对于我而言&#xff0c;经常使用Scrapy异步处理框架Twisted&#xff0c;其实意思很明确&#xff0c;Scrapy可以实现多并发处理任务&#xff0c;同一时间将可以处理多个请求并且大大提高工作效率。 Scrapy是一个强大且高效的Python爬虫…

文章阅读——Scaffolding protein functional sites using deep learning

1.最终幻想: 无中生有的蛋白质从头设计 零.导读 近几年&#xff0c;蛋白质结构预测领域连续取得重大突破。首先是【AlphaFold】&#xff0c;在可以充分利用共进化信息结合深度神经网络生成空间约束条件并降低相空间的搜索&#xff0c;极大地帮助了蛋白质的结构建模&#xff0…

扁平按钮样式

上图 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>扁平按钮</title><style>body {margin: 0;padding: 0;height: 100vh;display: flex;justify-content: center;ali…

改造python3中的http.server为简单的文件上传下载服务

改造 修改python3中的http.server.SimpleHTTPRequestHandler&#xff0c;实现简单的文件上传下载服务 simple_http_file_server.py&#xff1a; # !/usr/bin/env python3import datetime import email import html import http.server import io import mimetypes import os …

OpenCV-python:图像像素类型转换与归一化

目录 1.图像像素类型转换 2. 图像像素转换适用情形 3.图像归一化 4.归一化方法支持 5.归一化函数 6.知识笔记 1.图像像素类型转换 图像像素类型转换是指将图像的像素值从一种类型转换为另一种类型。常见的像素类型包括无符号整数类型&#xff08;如8位无符号整数、16位无符…

树_左叶子之和

//给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 // // // // 示例 1&#xff1a; // // // // //输入: root [3,9,20,null,null,15,7] //输出: 24 //解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&#xff0c;所以返回 24 //…

彩色成像的基础和应用 原理 Principles(一)

下面我将不定期尽可能出一系列&#xff08;我觉的非常好&#xff09;翻译的文章来解释颜色这们学科。【下图为此次翻译的书籍封面】 Introduction: 颜色是一种与光的物理学&#xff0c;物质的化学&#xff0c;物体的几何特性以及人…

电脑回收站还原的文件在哪里找到?如何找回回收站还原的文件

电脑回收站是一种非常有用的功能&#xff0c;可以帮助我们恢复无意中删除的文件。然而&#xff0c;许多人可能不清楚还原的文件在哪里可以找到。本文将为您带来详细解答&#xff0c;并帮助您找回回收站还原的文件。 电脑回收站还原的文件在哪里找到 当我们使用电脑的回收站功…

微信小程序开发平台系统源码 附带完整的搭建教程

随着移动互联网的快速发展&#xff0c;微信小程序作为一种新型的应用形态&#xff0c;凭借其轻量化、易用性等特点&#xff0c;逐渐成为了移动开发领域的新宠。 以下是部分代码示例&#xff1a; 系统特色功能一览&#xff1a; 1.完善的开发工具&#xff1a;本系统提供了一整套…