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 版本中添加了一下新功能:
下面的 API 代码示例展示了如何轻松地训练一个新的 TensorFlow 模型:
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 中:
当使用数据库 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 的更多详情,请见发布说明: |