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 的更多详情,请见发布说明:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Serverless 1.57.0 发布,无服务器架构开发框架
Serverless 架构开发框架 Serverless Framework 1.57.0 发布了,该框架使用 AWS Lambda、Azure Functions、Google CloudFunctions 等技术,可以构建 Serverless 架构的 Web、移动和 IoT 应用。 新版更新说明如下: 关于如何将服务移至新应用的说明 允许在无服务器变量中强制转换为布尔值 为不同的 ALB 创建不同的目标组 改进 sls create --help 修正统计资料要求中的竞争条件处理 更新Lambda@Edge 上的AWS 限制 使用 psuedo 参数修复具有 sns 跨区域定义的错误 添加腾讯插件英文版文档 更新说明:https://github.com/serverless/serverless/releases/tag/v1.57.0
- 下一篇
Git 2.24 发布,分布式版本控制系统
Git 2.24已经发布,该版本包含了来自 78 个贡献者的功能增加和 bug 修复。其中带来一些亮点,比如特性宏,commit-graph,新可选全新的仓库历史重写工具 filter-repo 等,内容如下: Feature macros 在 Git 2.24 中,可以选择使用 feature 宏功能(一种包含许多其他功能的 Git 配置)。这些是由 Git 的开发人员手动选择的,通过它可以选择加入某个功能或根据存储库的特性采用一些设置。例如,假设有一个特别大的存储库,当我们发现其运行缓慢时,通常会将 index.version 设置为 4,但这并不是好的解决方法。而现在有另外一种选择:通过下面方式启用 feature.manyFiles: git config feature.manyFiles true 目前 feature 宏功能只包括 feature.experimenta l和 feature.manyFiles,以后可能会新添加新的宏。 Commit graphs by default(默认启用提交图) 在 Git 2.24 中,默认会启用提交图,此前该功能是在实验性...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长