pytorch 转换onnx_ML.NET(一),使用一个现成的ONNX机器学习模型

这篇博客介绍了如何在.NET Core中使用http://ML.NET框架运行一个预先训练好的ONNX Tiny YOLOv2模型进行图像对象识别。文章涵盖了ONNX模型格式、Tiny YOLOv2模型、数据集和可视化工具Netron的简介,以及如何通过http://ML.NET创建PredictionEnginePool进行预测和解析输出结果。
摘要由CSDN通过智能技术生成

7ab5ca186079590f54676f67351e3d7b.png

1、前言

本篇在不需要很多机器学习相关知识以及 http://ML.NET 知识的情况下介绍一些机器学习方面的基本概念、工具以及如何利用 .NET Core 上的 http://ML.NET 机器学习框架使用一个已经训练好的机器学习模型。

2、背景

人工智能(Artificial intelligence/AI)也被称做机器智能,它是一种由机器展现出的“学习”与“解决问题”的智能,与之相对应就是自然智能即由人和者其他生物展现出的智能。机器学习(Machine Learning)是实现人工智能的方式之一,而深度学习(Deep Learning)则是机器学习的其中一种方法。这三个概念的关系参考下图

9a33e7176af4e64041df00a257ec13d9.png

我们要使用的神经网络模型名为 Tiny YOLOv2,它是一个简化版本的 YOLO 模型。这是一个用于图像中对象识别与定位的神经网络模型。关于该神经网络的深入内容有兴趣的读者可以阅读下面两篇文章,其中一篇是简要介绍另外一篇则是对应的论文。

Real-time object detection with YOLO​machinethink.net YOLO 神经网络论文​arxiv.org

算法有了,还需要一套训练神经网络的数据集,Tiny YOLOv2 是通过 PASCAL VOC 数据集训练得到的模型,数据集的信息可以在下面的链接找到,

PASCAL VOC dataset​host.robots.ox.ac.uk

Tiny YOLOv2 模型的文件可以在 ONNX 项目的 GitHub 站点,这里我们要使用的是ONNX 格式的模型文件。

onnx/models​github.com
c82860653f27b523bd9c621d754c5020.png

那什么是ONNX呢? 目前各个语言的机器学习框架的模型都有自己的模型文件格式,比如TensorFlow的.pd,Keras的.keras,CoreML的.mlmodel 等等。ONNX旨在通过提供一个开源的支持深度学习与传统机器学习模型的格式建立一个机器学习框架之间的生态,让我们可以在不同的学习框架之间分享模型,目前受到绝大多数学习框架的支持。详情可以浏览其主页。

ONNX: Open Neural Network Exchange Format​onnx.ai
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值