首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ML.NET导出到ONNX

ML.NET是一个跨平台、开源的机器学习框架,由微软开发和维护。它使开发人员能够在.NET应用程序中集成机器学习模型,无论是在前端还是后端开发中都非常方便。

导出到ONNX(Open Neural Network Exchange)是ML.NET框架中的一个重要功能。ONNX是一种开放的、可互操作的模型格式,可以让不同的深度学习框架之间共享和使用模型。通过将ML.NET模型导出为ONNX格式,我们可以在其他深度学习框架(如TensorFlow、PyTorch等)中使用该模型,实现更广泛的模型部署和应用。

ML.NET导出到ONNX的步骤如下:

  1. 首先,确保你已经安装了ML.NET和ONNX Runtime。可以使用NuGet包管理器来安装它们。
  2. 在ML.NET中,使用以下代码导出模型到ONNX格式:
代码语言:txt
复制
using Microsoft.ML;
using Microsoft.ML.Transforms.Onnx;

...

var context = new MLContext();

// 训练和训练模型

var onnxModelPath = "model.onnx";
context.Model.ConvertToOnnx(model, data, onnxModelPath);

这将把训练好的ML.NET模型转换为ONNX格式,并保存到指定的路径下。

  1. 接下来,你可以使用ONNX Runtime来加载和运行导出的模型。以下是使用ONNX Runtime加载和运行模型的示例代码:
代码语言:txt
复制
using System;
using System.Linq;
using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;

...

var session = new InferenceSession("model.onnx");

// 准备输入数据

var inputMeta = session.InputMetadata;
var inputName = inputMeta.Keys.First();
var shape = inputMeta[inputName].Dimensions.ToArray();
var inputData = new float[shape[0], shape[1], shape[2]]; // 根据模型输入形状创建输入数据
var tensor = new DenseTensor<float>(inputData, shape);

// 运行模型

var inputContainer = new List<NamedOnnxValue> { NamedOnnxValue.CreateFromTensor(inputName, tensor) };
var results = session.Run(inputContainer);

// 处理模型输出

var outputName = session.OutputMetadata.Keys.First();
var outputTensor = results.First().AsTensor<float>();
var outputData = outputTensor.ToArray();

在此示例中,我们首先创建一个InferenceSession对象来加载导出的模型。然后,我们准备输入数据,并将其传递给模型进行推断。最后,我们获取模型的输出并对其进行进一步处理。

ML.NET导出到ONNX具有以下优势和应用场景:

优势:

  • 跨平台互操作性:通过将ML.NET模型导出为ONNX格式,可以在其他深度学习框架中使用它,从而实现跨平台的模型共享和应用。
  • 扩展性:使用ONNX可以扩展ML.NET框架的能力,利用其他深度学习框架的高级功能和模型架构。
  • 生态系统支持:ONNX有一个广泛的开源社区支持,可以分享和使用各种预训练的模型。

应用场景:

  • 跨框架模型部署:将ML.NET模型导出为ONNX格式后,可以在其他深度学习框架(如TensorFlow、PyTorch等)中使用它,以实现在不同框架之间共享和部署模型。
  • 深度学习模型集成:使用ONNX可以将现有的深度学习模型(如ResNet、BERT等)集成到ML.NET应用程序中,从而扩展其机器学习能力。
  • 跨平台移植性:通过将ML.NET模型导出为ONNX格式,可以在各种设备上运行,包括移动设备和嵌入式设备。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云机器学习平台:https://cloud.tencent.com/product/tiia
  • 腾讯云AI Lab:https://cloud.tencent.com/product/ai-lab
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云深度学习平台:https://cloud.tencent.com/product/dla
  • 腾讯云云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云容器服务:https://cloud.tencent.com/product/ccs
  • 腾讯云数据库服务:https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/bcs
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

YOLOv7 在 ML.NET 中使用 ONNX 检测对象

本文介绍如何在 ML.NET 中使用 YOLOv7 的 ONNX 模型来检测图像中的对象。 什么是 YOLO YOLO(You Only Look Once)是一种先进的实时目标检测系统。...论文地址:https://arxiv.org/abs/2207.02696 Yolov7 ONNX 模型 开放神经网络交换 (ONNX) 是 AI 模型的开放源代码格式。...在 Releases v0.1 中提供的 onnx 不能直接使用,我们需要下载预训练的 yolov7.pt 然后克隆项目,使用导出工具自行导出 onnx 模型。...github.com/sangyuxiaowu/ml_yolov7 编写完成执行,然后我们就可以在 assets/images/output 目录看到样例图片的预测结果: 预测结果 示例和参考 微软官方提供了 在 ML.NET...References [1] CSDN 下载我分享的文件: https://download.csdn.net/download/marin1993/86912472 [2] 在 ML.NET 中使用

1.6K20

VB.NET Core调用YOLOv5 ONNX模型进行目标检测(ML.NET)

这里就用到微软的ML.NET推理引擎,ML.NET 由微软研究院研发,在过去的十年里发展成为一个重要的框架,它在微软的许多产品团队中都有使用,比如 Windows、必应、Azure 等等。...ML.NET 支持分类(例如文本分类、情感分析)、回归(例如预测、价格预估)等机器学习任务。...在 ML.NET 开源生态中,微软致力于让它的内部功能更加完善,ML.NET 可以为 .NET 开发者带来更优化的机器学习开发体验!...事前准备: yolov5官方Github https://github.com/ultralytics/yolov5/ 1.下载Onnx模型权重文件yolov5s.onnx/yolov5n6....onnx/yolov5n.onnx (随便一个都可以) 2.如果需要自己训练模型,请根据官方教程操作即可!

1.9K20
  • ML.NET 中使用Hugginface Transformer

    ML.NET 集成的ONNX运行时,Hugginface提供了一种以ONNX格式导出Transformers的方法。...首先以 ONNX 文件格式导出 Hugginface Transformer , ML.NET 然后将其加载到 ONNX 运行时中。 1....基本上,您可以在一个机器学习框架(如PyTorch)中训练模型,保存它并将其转换为ONNX格式。然后,您可以在不同的框架(如 ML.NET)中使用该 ONNX 模型。这正是我们在本教程中所做的。...ML.NET 加载 ONNX 模型 在使用ML.NET 加载ONNX 模型之前,我们需要检查模型并找出其输入和输出。 我们使用Netron。我们只需选择创建的模型,整个图形就会出现在屏幕上。...这个完整的过程可以应用于任何ONNX模型,而不仅仅是从Huggingface创建的模型。 完成此操作后,我们可以继续进行实际的 ML.NET 代码。首先,在我们的 .NET 项目中安装必要的包。

    1.1K10

    ML.NET 发布0.11版本:.NET中的机器学习,为TensorFlow和ONNX添加了新功能

    微软发布了其最新版本的机器学习框架:ML.NET 0.11带来了新功能和突破性变化。...ML.NET的创新0.11 0.11 版本的ML.NET现在还支持 TensorFlowTransformer组件中的文本输入数据。TensorFlow模型不仅可用于图像,还可用于文本分析。...该ONNX组件还进行了重构:Microsoft.ML.ONNX 更改为 Microsoft.ML.ONNXConverter 和Microsoft.ML.ONNXTrans .FORM更改为Microsoft.ML.ONNXTransformer...这更清晰的表达ONNX转换和转换之间的区别。ONNX是一种开放且可互操作的模型格式,允许您在框架中训练模型,以及在另一个框架中使用。...与之前版本的ML.NET 0.10相比,ML.NET 0.11包含一些重大更改,包括删除Microsoft.ML.Core命名空间。破坏性性更改 列表已发布在GitHub上。

    59420

    译 | 宣布ML.NET 1.2 及模型生成器更新(用于 .NET 的机器学习)

    以下是此更新中的一些主要亮点: ML.NET 更新 ML.NET 1.2 是一个向后兼容的版本,没有重大更改,因此请更新以获取最新的更改。...用于 TensorFlow 和 ONNX 模型的ML.NET包正式发布 ML.NET被设计为可扩展的平台,因此您可以使用其他流行的 ML 模型,如 TensorFlow 和 ONNX 模型,并可以访问更多的机器学习和深度学习方案...dotnet/machinelearning-samples/tree/master/samples/csharp/end-to-end-apps/DeepLearning_ObjectDetection_Onnx...更新至 ML.NET 1.2 模型生成器使用最新版本的ML.NET生成的代码将引用 1.2。在早期的预览版中,它使用ML.NET 1.0。 解决客户反馈的问题 此版本中修复了许多问题。...立即试用ML.NET和模型生成器! 从这里开始上手 ML.NET

    1.1K30

    机器学习 ML.NET 发布 1.0 RC

    ML.NET 是面向.NET开发人员的开源和跨平台机器学习框架(Windows,Linux,macOS),通过使用ML.NET,.NET开发人员可以利用他们现有的工具和技能组,为情感分析,推荐,图像分类等常见场景创建自定义机器学习模型...下图是从2018年5月份开源发布ML.NET 0.1版本以来到1.0 RTM之前的预览时间图: 在此版本(ML.NET 1.0 RC)中,主要是API更改完成,进入稳定。...ML.NET包的稳定版与预览版的分离: ML.NET 的包现在分成 1.0 RC 和 0.12 版本预览版,ML.NET中的大部分功能(约95%)将作为稳定版本发布,下列这些包是稳定的进入1.0 RC...view=ml-dotnet 有一些功能在发布ML.NET 1.0时仍然不会处于RTM状态。...view=ml-dotnet-preview 主要是 TensorFlow组件 Onnx 组件 TimeSeries 组件 Recommendadtions 组件 ?

    60240

    使用 ML.NET 再现 《华强买瓜》

    前言 最近在看微软开源的机器学习框架ML.NET使用别人的预训练模型(开放神经网络交换格式.onnx)来识别图像,然后逛github发现一个好玩的repo。决定整活一期博客。...首先还是稍微科普一下机器学习相关的知识,这一块.NET虽然很早就开源了ML.NET框架,甚至在官方的ML.NET开源之前,就有一些三方社区的开源实现比如早期的AForge.NET实现。...B站经典短视频《华强买瓜》为例)通过ffmpeg转换成普通的一帧一帧的图片 2、通过ML.NET加载【神经风格转换预训练模型】将每一帧原图迁移到新的风格(艺术风格:udnie,抽象主义)。...3、由于2只能将图片迁移到固定的240240格式,所以我们还需要通过ML.NET加载【超分辨率预训练模型】将每一帧图片进行超分辨率放大得到一张672672的图片 4、通过ffmpeg将新的图片合并成新的视频...接着我们打开VS创建好的项目,把我们的两个onnx模型引入进去。

    55010

    微软释出ML.NET 1.1,加入异常侦测演算法

    导读 微软为ML.NET的时间序列NuGet套件加入两个预览功能,分别是异常侦测演算法以及全新支援奇谱分析的时间序列预测元件 ?...由微软研究院开发的机器学习框架ML.NET,在今年Build大会中推出了1.0正式版,现在微软再次更新框架提供的演算法推出ML.NET 1.1,同时也更新了仍在预览阶段的ML.NET模型建置工具(Model...微软在ML.NET 1.0中加入自动化机器学习AutoML功能,能自动决定使用于资料的演算法,帮助开发者快速建立机器学习模型。...微软在ML.NET 1.1中,为IDataview加入支援记忆体图像类型,而IDataView是.NET生态系统各函式库共享的类型。...在之前的ML.NET版本中,当开发者在模型中处理图像时,像是以TensorFlow或是ONNX模型为图像评分时,开发者需要指定磁碟中的路径,从档案中载入图像,但在ML.NET 1.1中,开发者可以使用记忆体中的图像

    62310

    微软开源用于AI模型的推理引擎ONNX Runtime

    在Microsoft Connect 2018开发者大会上,微软对Azure和IoT Edge服务进行了大量更新,微软免费提供ONNX Runtime,一种用于ONNX格式的AI模型的推理引擎。...第一个是开放式神经网络交换(ONNX)Runtime,这是一种用于ONNX格式的机器学习模型的高性能推理引擎。...他补充说,它也已被纳入其他微软产品,包括Windows ML和ML.NET。...也许更重要的是,它得到了更广泛的ONNX社区的支持。英特尔和微软正在合作将nGraph编译器集成,作为ONNX Runtime的执行提供程序。...高通AI产品管理高级总监Gary Brotman表示,“ONNX Runtime将进一步推动跨多个设备类别的框架互操作性,标准化和性能优化,我们希望在Snapdragon移动平台上支持ONNX Runtime

    1.6K30

    ONNX简介

    目前官方支持加载ONNX模型并进行推理的深度学习框架有: Caffe2, PyTorch, MXNet,ML.NET,TensorRT 和 Microsoft CNTK,并且 TensorFlow 也非官方的支持...ONNX。...ONNX 开放式神经网络交换(ONNX)是迈向开放式生态系统的第一步,它使AI开发人员能够随着项目的发展选择合适的工具。 ONNX为AI模型提供开源格式。...最初的ONNX专注于推理(评估)所需的功能。 ONNX解释计算图的可移植,它使用graph的序列化格式。 它不一定是框架选择在内部使用和操作计算的形式。...ONNX是一个开放式规范,由以下组件组成: 可扩展计算图模型的定义 标准数据类型的定义 内置运算符的定义 参考资料 ONNX-维基百科 ONNX--跨框架的模型中间表达框架

    3.3K60

    微软发布ML.NET 1.0

    您可以在我们的ML.NET客户展示中使用ML.NET跟踪这些和许多其他组织的旅程。...ML.NET核心组件 自动机器学习预览 ML.NET模型生成器预览 ML.NET CLI预览 ML.NET入门 前面的路 你帮忙建了它 ML.NET核心组件 ML.NET旨在提供终端工作流程,以便在机器学习...多级分类 回归 排行 异常检测 聚类 推荐(预览) 数据转换和特色化 文本 分类 特征选择 规范化和缺失值处理 图像特征化 时间序列(预览) 支持ONNX和TensorFlow模型集成(预览) 其他...ML.NET CLI预览 ML.NET CLI(命令行界面)是我们今天推出的另一个新工具! ML.NET CLI是一个dotnet工具,允许使用AutoML和ML.NET生成ML.NET模型。...ML.NET的下一步是什么 虽然我们非常高兴今天发布ML.NET 1.0,但团队已经在努力为ML.NET 1.0版发布以下功能。

    93220

    将Pytorch模型移植到C++详细教程(附代码演练)

    因此,可以使用Python轻松地在PyTorch中训练模型,然后通过torchscript将模型导出到无法使用Python的生产环境中。它基本上提供了一个工具来捕获模型的定义。...ONNX(开放式神经网络交换) ONNX是一种开放格式,用于表示机器学习模型。...可以使用以下代码将上述DummyCell模型导出到onnx: torch.onnx.export(dummy_cell, x, "dummy_model.onnx", export_params=True...将PyTorch模型转换为TensorFlow lite的主管道如下: 1) 构建PyTorch模型 2) 以ONNX格式模型 3) 将ONNX模型转换为Tensorflow(使用ONNX tf) 在这里...Intro_to_TorchScript_tutorial.html 2)在C++ 中加载TorchScript模型:https://pytorch.org/tutorials/advanced/cpp_export.html 3)将Pytorch模型导出到

    1.6K40

    日本中二少年教你用姿势估计把自己变成3D人物,动作实时同步,iOS上也能实现

    用3D姿势估计的Onnx模型移动Unity 青柳君尝试过多种实现方式,包括WindowsML,ML.NetOnnx Runtime等,但最终选择了OpenCVSharp,也就是OpenCV模型导入功能...,在Unity中加载和执行Onnx,因为OpenCVSharp在Unity和.Net环境中可以用相同的方式处理,图像也不会被转换为Mat格式。...相关链接: https://qiita.com/yukihiko_a/items/386e3a86a5e523757707 有关Onnx的代码部分如下: // Properties for onnx and....onnx"); for (var i = 0; i < 4; i++) outputs[i] = new Mat(); } 首先,使用InitONNX()读取Onnx文件。...将通过PyTorch学习得到的模型导出到Onnx,用coremltools转换为CoreML模型,此时就算是估计到了相同的图像,结果也会有所不同,所以准确度未知。

    1.3K20

    微软开源ONNX Runtime,想用什么深度学习框架任你选!

    ONNX Runtime是适用于Linux,Windows和Mac上ONNX格式的机器学习模型的高性能推理引擎。 ?...ONNX Runtime有什么用? ONNX是微软公开推出的首款推理机,完整支持ONNX 1.2和 ONNX机器学习的更高版本。...此外,微软的其他一些服务,如Windows ML 和ML.net等,也纳入了ONNX Runtime支持的业务之中。 ONNX Runtime在设计上是轻量级和模块化的,CPU的构建只有几M字节。...ONNX的另一个早期支持者是高通,也支持ONNX Runtime。...“我们很高兴能够通过支持微软在我们的平台上发布ONNX Runtime,让机器学习开发者客户群能够享受ONNX带来的好处。” 如何使用ONNX Runtime 首先,你需要建立一个ONNX模型。

    2.7K20
    领券