C# OpenVINO 模型信息查看工具

目录

效果

支持模型

项目

代码

下载


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.mfbz.cn/a/215106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎么理解回流和重绘?

回流&#xff08;reflow&#xff09;和 重绘&#xff08;repaint&#xff09;是浏览器渲染过程中的两个关键概念。 一、概念&#xff1a; 回流指的是浏览器在计算文档流布局&#xff08;layout&#xff09;时&#xff0c;重新计算元素的位置和大小的过程。当页面中的元素发生尺…

spring boot 事件机制

目录 概述实践监听spring boot ready事件代码 源码初始化流程调用流程 结束 概述 spring boot 版本为 2.7.17 。 整体看一下spring及spring boot 相关事件。 根据下文所给的源码关键处&#xff0c;打上断点&#xff0c;可以进行快速调试。降低源码阅读难度。 实践 spring…

传媒行业CRM:打造高效客户管理,提升品牌影响力

传媒行业充满竞争和变化&#xff0c;传媒企业面临着客户管理不透明、业务流程混乱、销售数据分析不足&#xff0c;无法优化营销策略和运营管理等问题。CRM系统是企业实现数智化管理的神器&#xff0c;可以有效解决这些问题。下面说说&#xff0c;传媒行业CRM系统推荐。 1、建立…

webGL开发VR和AR应用

开发 WebVR&#xff08;虚拟现实&#xff09;和 WebAR&#xff08;增强现实&#xff09; 应用需要使用 WebXR 技术&#xff0c;结合 WebGL 以实现高质量的图形渲染。以下是开发这类应用的一般技术方案&#xff0c;希望对大家有所帮助。 1.WebXR API: 使用 WebXR API&#xff0…

基于Java SSM框架+Vue实现企业公寓后勤管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现企业宿舍后勤管理网站演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所…

陪玩圈子系统:打破单身孤独,展开精彩社交旅程,APP小程序H5,源码交付,支持二开!

近年来&#xff0c;随着社交网络的快速发展&#xff0c;越来越多的人开始寻求各种方式来解决单身孤独的问题。而陪玩圈子系统便应运而生&#xff0c;在为用户提供社交服务的同时也促进了人与人之间的互动和交流。在这个拥有庞大用户数量和各种丰富活动的平台上&#xff0c;你将…

【LeetCode】每日一题 2023_12_4 从二叉搜索树到更大和树(二叉树)

文章目录 刷题前唠嗑题目&#xff1a;从二叉搜索树到更大和树题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 题目&#xff1a;从二叉搜索树到更大和树 题目链接&#xff1a;1038. 从二叉搜索树到更大和树 题目描述…

HarmonyOS4.0之安装DevEco Studio开发工具

第一步 打开网址&#xff1a;https://developer.huawei.com/consumer/cn/ 点击后是这样的界面 第二步 鼠标移入到开发点击DevEco Studio 第三步 我们往下滑动找到以下界面 我们根据自己的需要点击下载图标 这里演示Window系统 下载好后解压文件 我们解压文件后 第四步…

如何批量修改ppt中的字体?

ppt制作已经属于是复杂的操作了&#xff0c;当我们想要更换ppt中的字体&#xff0c;有没有什么快捷的方法呢&#xff1f;今天分享两个方法&#xff0c;一键修改ppt文件字体。 方法一&#xff1a; 找到功能栏中的编辑选项卡&#xff0c;点击替换 – 替换字体&#xff0c;在里面…

面试题:为什么数据库连接池不采用 IO 多路复用?

今天我们聊一个不常见的 Java 面试题&#xff1a;为什么数据库连接池不采用 IO 多路复用&#xff1f; 这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用 DB 时&#xff0c;还是经常性采用c3p0&#xff0c;tomcat connection pool等技术来与 D…

C++基础 -37- 模板函数与普通函数调用规则

当模板函数比普通函数更好匹配形参的时候&#xff0c;会优先调用模板函数 #include "iostream"using namespace std;template <class T> void show(T a, T b) {cout << a << endl;cout << b << endl;cout << "temp show&…

MQ - KAFKA 高级篇

kafak是一个分布式流处理平台,提供消息持久化,基于发布-订阅的方式的消息中间件&#xff0c;同时通过消费端配置相同的groupId支持点对点通信。 ##适用场景&#xff1a; 构造实时流数据管道,用于系统或应用之间可靠的消息传输.数据采集及处理,例如连接到一个数据库系统,捕捉表…

Redis--15--缓存穿透 击穿 雪崩

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 缓存穿透 击穿 雪崩运行速度:1 缓存穿透问题描述:如何解决: 2 缓存击穿问题描述:如何解决: 3 缓存雪崩说明:解决方案: 缓存穿透 击穿 雪崩 问题描述: 由于海量的用…

漂亮极了!分享我收藏的 16 款 VS Code 主题

你好&#xff0c;我是 EarlGrey&#xff0c;喜欢翻译点东西&#xff0c;偶尔写写代码。 点击下方卡片关注我&#xff0c;一起向上进击&#xff0c;提升自我。后台回复关键词“电子书”&#xff0c;送你一份我收藏的电子书合集。 Visual Studio Code&#xff08;VS Code&#xf…

VMware安装OpenEuler(安装界面)

本文中使用的OpenEuler版本&#xff1a;22.03 LTS SP2 VMware&#xff1a;17.0.0 一、下载镜像 根据CPU和场景&#xff0c;按需下载 https://www.openeuler.org/zh/download/?versionopenEuler%2022.03%20LTS%20SP2 二、初始化VmWare 三、配置操作系统 四、安装操作系统 …

Python:核心知识点整理大全1-笔记

在本章中&#xff0c;你将运行自己的第一个程序——hello_ world.py。为 此&#xff0c;你首先需要检查自己的计算机是否安装了Python&#xff1b;如果没有安装&#xff0c; 你需要安装它。你还要安装一个文本编辑器&#xff0c;用于编写和运行Python 程序。你输入Python代码时…

【GD32307E-START】04 使用TinyMaix进行手写数字识别

【GD32307E-START】04 使用TinyMaix进行手写数字识别 参考博客 【GD32F427开发板试用】使用TinyMaix进行手写数字识别 https://blog.csdn.net/weixin_47569031/article/details/129009839 软硬件平台 GD32F307E-START Board开发板GCC Makefile TinyMaix简介 TinyMaix是国…

从马帮到金蝶云星空通过接口配置打通数据

从马帮到金蝶云星空通过接口配置打通数据 接入系统&#xff1a;马帮 上海马帮科技有限公司&#xff0c;是一家专注于提供全流程跨境电商ERP管理软件解决方案的企业。聚焦服务于各阶段、各领域的跨境电商从业者&#xff0c;旗下包含专业版ERP、亚马逊专用版ERP、东南亚海外版ERP…

SimCSE论文阅读

正负样本对构建原理正样本pair&#xff1a;one sentence two different embeddings as “positive pairs”. (通过dropout 作为噪声)负样本pair&#xff1a;Then we take other sentences in the same mini-batch as “negatives”任务&#xff1a; the model predicts the pos…

cup型号的意思

CPU 在整个计算机硬件中、技术体系中都算是最最重要的东西了。在 10 月 16 号的时候&#xff0c;Intel 正式发布了第 14 代的酷睿处理器。 一、Intel 的 CPU 型号规则 无论是哪家 CPU 厂商&#xff0c;为了更好地管理自己生产的众多型号的产品&#xff0c;也为了能更好地让消…
最新文章