ML.NET 1.4 发布,跨平台机器学习框架
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 发布,跨平台机器学习框架相关推荐
- ML.NET 1.3.1 发布,.NET 跨平台机器学习框架
ML.NET 1.3.1 已发布.ML.NET 是一个跨平台的机器学习框架,旨在让 .NET 开发者更快上手机器学习,它允许 .NET 开发者开发他们自己的模型,并将自定义 ML 注入到应用程序中. ...
- 苹果又发布一个机器学习框架,帮自家生态里的开发者降低AI门槛
李林 编译整理 量子位 出品 | 公众号 QbitAI 苹果又在GitHub上发布了一个新的机器学习框架. 这次的新框架名叫Turi Create,针对不那么精通机器学习的开发者,"简化了第 ...
- 开源的,跨平台的.NET机器学习框架ML.NET
微软在Build 2018大会上推出的一款面向.NET开发人员的开源,跨平台机器学习框架ML.NET. ML.NET将允许.NET开发人员开发他们自己的模型,并将自定义ML集成到他们的应用程序中,而无 ...
- 微软又开源了一个机器学习框架,这次是核心产品的机器学习引擎infer.NET
乾明 整理编译自 Microsoft Research Blog 量子位 报道 | 公众号 QbitAI 感觉微软对开源上瘾了. 在开源了跨平台机器学习框架ML.NET之后,微软又开源了一个非常重要的 ...
- 什么是 ML.NET?应该如何理解机器学习基础知识?
ML.NET 是一个免费的开源跨平台机器学习框架,可用于生成自定义机器学习解决方案并将其集成到 .NET 应用程序. 借助 ML.NET API,可以使用你已有的 .NET 技能将 AI 结合到应用中 ...
- 十分钟使用苹果机器学习框架CoreML进行图片识别(Swift版)
前几天WWDC上,苹果发布了机器学习框架CoreML .借助 Core ML,您可以将已训练好的机器学习模型,集成到自己的应用当中,根据文档,Core ML是基于Metal和Accelerate开发的 ...
- ML.NET 1.0 发布,单击右键即可添加机器学习模型
ML.NET 1.0 终于发布了.ML.NET 是一个跨平台的机器学习框架,旨在让 .NET 开发者更快上手机器学习,它允许 .NET 开发者开发他们自己的模型,并将自定义 ML 注入到应用程序中. ...
- 手把手教你在应用里用上iOS机器学习框架Core ML
2017-06-10 Cocoa开发者社区 2017年的WWDC上,苹果发布了Core ML这个机器学习框架.现在,开发者可以轻松的使用Core ML把机器学习功能集成到自己的应用里,让应用变得更加智 ...
- 机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录
一.序言 微软的机器学习框架于2018年5月出了0.1版本,2019年5月发布1.0版本.期间各版本之间差异(包括命名空间.方法等)还是比较大的,随着1.0版发布,应该是趋于稳定了.之前在园子里也看到 ...
最新文章
- 安装完python后怎么使用-安装anaconda后该怎么使用
- MATLAB - 为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像?
- java 优先队列 用法_优先队列的基本用法(java和c++)
- java nio 阻塞_Java NIO和传统阻塞IO
- php实战https请求,用php发https请求
- SQL点滴26—常见T-SQL面试解析
- 网址导航html5源码图标版,最新仿hao123网址导航(晓风网址导航系统) v4.2
- Redis高可用:主从复制及哨兵模式
- 前端学习(927):淘宝flexiblejs源码分析之pageshow原理
- AdaBoost 算法 入门
- 为什么至少三个哨兵_入职第一周,组长让我把部门redis服务搞成哨兵模式...慌-龙跃十二...
- SolidWorks2020绘制电脑折叠支架
- Netbean UML自动生成类图
- python数据分析师面试题选
- 有没有好用的文字转语音的工具帮推荐?
- 癌症/肿瘤免疫治疗最新进展(2022年3月)
- 神经系统的组成结构图谱,神经系统的基本结构图
- 【论文阅读】3D Topology-Preserving Segmentation with Compound Multi-Slice Representation
- Day 24 - 设定开发帐号 HBuilder X - DCloud 注册
- lululemon最新报告建立全球幸福感基准
热门文章
- 为什么要使用React Hooks?(5分钟实例)
- 上传文件 connection reset
- Jmeter HTTP请求后响应数据显示乱码解决方法
- Java并发编程中volatile实现过程详细解析
- 修复删除/var/lib/dpkg目录后,无法使用apt-get命令问题
- 如何关闭Struts2的webconsole.html
- Asymptote 学习记录(2):例子阅读
- [原] jQuery EasyUI 1.2.6源码、Demo合集、离线API
- (部分来自windows核心编程)远程注入dll
- .NET6之MiniAPI(八):日志