ML.NET 是一个面向 .NET 开发人员的开源和跨平台机器学习框架,它包括 Model Builder 和 CLI(命令行接口),让使用自动机器学习(AutoML)构建自定义机器学习模型变得更容易。1.4 版本已经发布了,以下是本次更新的一些亮点:

基于 GPU 支持的深度神经网络图像分类(GA)

在 .NET 中实现完整的 DNN 模型重新训练和传输学习。例如,你可以通过使用自己的图像从 ML.NET API 中本地培训 TensorFlow 模型来创建自己的自定义图像分类模型。ML.NET 的优点是使用了一个非常简单的高级 API,只需使用几行 C# 代码就可以定义和训练图像分类模型。而在使用低级别 Tensorflow.NET 库时,相同的操作则需要数百行代码。

Tensorflow.NET 库是一个开源的低级别 API 库,该库是开源 SciSharp 堆栈库的一部分,它为 TensorFlow 提供 .NET 标准绑定。下面的堆栈图显示了 ML.NET 是如何在 DNN 培训中实现这些新特性的:

图像分类功能最初是在 v1.4 预览版中引入的,在 GA 版本中添加了一下新功能:

  • 在 Windows 和 Linux 上支持 GPU,GPU 支持是基于 NVIDIA CUDA

  • 内存图像预测:用内存中的图像而不是文件路径来做预测

  • 当达到最佳精度时,它将停止训练,并且不会随着更多的训练周期(EIPCHS)而进一步提高

  • 在图像分类器中添加其他支持的 DNN 体系结构:Inception V3、ResNet V2 101、Resnet V2 50 和 Mobilenet V2

下面的 API 代码示例展示了如何轻松地训练一个新的 TensorFlow 模型:

// Define model's pipeline with ImageClassification defaults (simplest way)
var pipeline = mlContext.MulticlassClassification.Trainers.ImageClassification(featureColumnName: "Image",labelColumnName: "LabelAsKey",validationSet: testDataView).Append(mlContext.Transforms.Conversion.MapKeyToValue(outputColumnName: "PredictedLabel",inputColumnName: "PredictedLabel"));// Train the model
ITransformer trainedModel = pipeline.Fit(trainDataView);

Database Loader(GA)

数据库加载器允许将数据库中的数据加载到 IDataView 中,因此可以直接针对关系数据库进行模型培训。此加载程序支持 .NET Core 或 .NET Framework 中 System.Data 支持的任何关系数据库提供程序,这意味着可以使用任何 RDBMS,如 SQL Server、Azure SQL、Oracle、SQLite、PostgreSQL、MySQL、Advanced 等。

这个新的 Database Loader 提供更加简化的代码实现,因为它从数据库读取数据并通过 IDataView 提供数据的方式是由 ML.NET 框架提供的,所以只需要指定数据库连接字符串、DataSet 列的 SQL 语句以及加载数据时要使用的数据类。

下面是示例代码,说明如何轻松地配置代码,以便将数据直接从关系数据库加载到 IDataView 中:

//Lines of code for loading data from a database into an IDataView for a later model training
//...
string connectionString = @"Data Source=YOUR_SERVER;Initial Catalog= YOUR_DATABASE;Integrated Security=True";string commandText = "SELECT * from SentimentDataset";DatabaseLoader loader = mlContext.Data.CreateDatabaseLoader();
DbProviderFactory providerFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
DatabaseSource dbSource = new DatabaseSource(providerFactory, connectionString, commandText);IDataView trainingDataView = loader.Load(dbSource);// ML.NET model training code using the training IDataView
//...public class SentimentData
{public string FeedbackText;public string Label;
}

当使用数据库 ML.NET 进行培训时也支持数据流,这意味着整个数据库不需要装入内存,它将根据需要从数据库中读取,从而可以处理非常大的数据库(即 50 GB、100 GB 或更大的数据库)。

可伸缩部署的预测引擎库(GA)

当将 ML 模型部署到多线程和可伸缩的 .NET Core Web 应用程序和服务(例如 ASP .NET Core Web 应用程序、Web API 或 Azure 函数)中时,推荐使用PredictionEnginePool,不针对每个请求直接创建 PredictionEngine 对象,PredictionEnginePool 是 Microsoft.Extensions.MLNuGet 包的一部分。

增强 .NET Core 3.0(GA)

在 Jupyter notebooks 中使用 ML.NET

现在可以在 Jupyter notebooks 中运行任何 .NET 代码(C#/F#),因此也可以在其中运行 ML.NET 代码。

查看 DataView 中加载的类型数据:

绘制数据分布:

培训 ML.NET 模型并记录其培训时间:

可在 notebook 中看到模型的质量指标,并将其记录下来供以后审查:

Visua lStudio 中 Model Builder 的更新

Visual Studio 的 Model Builder Tool 已经更新,使用最新的 ML.NET GA 版本(1.4 GA),此外,它还包括新特性,例如 Visual Studio 中的可视化体验,用于本地图像分类模型训练。

关于 ML.NET 的更多详情,请见发布说明:

https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-4-global-availability-machine-learning-for-net/

ML.NET 1.4 发布,跨平台机器学习框架相关推荐

  1. ML.NET 1.3.1 发布,.NET 跨平台机器学习框架

    ML.NET 1.3.1 已发布.ML.NET 是一个跨平台的机器学习框架,旨在让 .NET 开发者更快上手机器学习,它允许 .NET 开发者开发他们自己的模型,并将自定义 ML 注入到应用程序中. ...

  2. 苹果又发布一个机器学习框架,帮自家生态里的开发者降低AI门槛

    李林 编译整理 量子位 出品 | 公众号 QbitAI 苹果又在GitHub上发布了一个新的机器学习框架. 这次的新框架名叫Turi Create,针对不那么精通机器学习的开发者,"简化了第 ...

  3. 开源的,跨平台的.NET机器学习框架ML.NET

    微软在Build 2018大会上推出的一款面向.NET开发人员的开源,跨平台机器学习框架ML.NET. ML.NET将允许.NET开发人员开发他们自己的模型,并将自定义ML集成到他们的应用程序中,而无 ...

  4. 微软又开源了一个机器学习框架,这次是核心产品的机器学习引擎infer.NET

    乾明 整理编译自 Microsoft Research Blog 量子位 报道 | 公众号 QbitAI 感觉微软对开源上瘾了. 在开源了跨平台机器学习框架ML.NET之后,微软又开源了一个非常重要的 ...

  5. 什么是 ML.NET?应该如何理解机器学习基础知识?

    ML.NET 是一个免费的开源跨平台机器学习框架,可用于生成自定义机器学习解决方案并将其集成到 .NET 应用程序. 借助 ML.NET API,可以使用你已有的 .NET 技能将 AI 结合到应用中 ...

  6. 十分钟使用苹果机器学习框架CoreML进行图片识别(Swift版)

    前几天WWDC上,苹果发布了机器学习框架CoreML .借助 Core ML,您可以将已训练好的机器学习模型,集成到自己的应用当中,根据文档,Core ML是基于Metal和Accelerate开发的 ...

  7. ML.NET 1.0 发布,单击右键即可添加机器学习模型

    ML.NET 1.0 终于发布了.ML.NET 是一个跨平台的机器学习框架,旨在让 .NET 开发者更快上手机器学习,它允许 .NET 开发者开发他们自己的模型,并将自定义 ML 注入到应用程序中. ...

  8. 手把手教你在应用里用上iOS机器学习框架Core ML

    2017-06-10 Cocoa开发者社区 2017年的WWDC上,苹果发布了Core ML这个机器学习框架.现在,开发者可以轻松的使用Core ML把机器学习功能集成到自己的应用里,让应用变得更加智 ...

  9. 机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录

    一.序言 微软的机器学习框架于2018年5月出了0.1版本,2019年5月发布1.0版本.期间各版本之间差异(包括命名空间.方法等)还是比较大的,随着1.0版发布,应该是趋于稳定了.之前在园子里也看到 ...

最新文章

  1. 安装完python后怎么使用-安装anaconda后该怎么使用
  2. MATLAB - 为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像?
  3. java 优先队列 用法_优先队列的基本用法(java和c++)
  4. java nio 阻塞_Java NIO和传统阻塞IO
  5. php实战https请求,用php发https请求
  6. SQL点滴26—常见T-SQL面试解析
  7. 网址导航html5源码图标版,最新仿hao123网址导航(晓风网址导航系统) v4.2
  8. Redis高可用:主从复制及哨兵模式
  9. 前端学习(927):淘宝flexiblejs源码分析之pageshow原理
  10. AdaBoost 算法 入门
  11. 为什么至少三个哨兵_入职第一周,组长让我把部门redis服务搞成哨兵模式...慌-龙跃十二...
  12. SolidWorks2020绘制电脑折叠支架
  13. Netbean UML自动生成类图
  14. python数据分析师面试题选
  15. 有没有好用的文字转语音的工具帮推荐?
  16. 癌症/肿瘤免疫治疗最新进展(2022年3月)
  17. 神经系统的组成结构图谱,神经系统的基本结构图
  18. 【论文阅读】3D Topology-Preserving Segmentation with Compound Multi-Slice Representation
  19. Day 24 - 设定开发帐号 HBuilder X - DCloud 注册
  20. lululemon最新报告建立全球幸福感基准

热门文章

  1. 为什么要使用React Hooks?(5分钟实例)
  2. 上传文件 connection reset
  3. Jmeter HTTP请求后响应数据显示乱码解决方法
  4. Java并发编程中volatile实现过程详细解析
  5. 修复删除/var/lib/dpkg目录后,无法使用apt-get命令问题
  6. 如何关闭Struts2的webconsole.html
  7. Asymptote 学习记录(2):例子阅读
  8. [原] jQuery EasyUI 1.2.6源码、Demo合集、离线API
  9. (部分来自windows核心编程)远程注入dll
  10. .NET6之MiniAPI(八):日志