ML.NET是 .NET 的跨平台开源机器学习 (ML) 框架。
ML.NET 允许开发人员在其 .NET 应用程序中轻松构建、训练、部署和使用自定义模型,而无需具备开发机器学习模型的专业知识或使用 Python 或 R 等其他编程语言的经验。该框架提供从文件和数据加载的数据。数据库,支持数据转换,并包含许多机器学习算法。
使用 ML.NET,您可以针对各种场景训练模型,例如分类、预测和异常检测。
您还可以在 ML.NET 中使用 TensorFlow 和 ONNX 模型,这使得框架更具可扩展性并扩展了支持的场景数量。
- 了解有关ML.NET 基础知识的更多信息。
- 按照我们的ML.NET 入门教程构建您的第一个 ML.NET 模型。
- 查看我们的文档和教程。
- 请参阅API 参考文档。
- 克隆我们的ML.NET 示例 GitHub 存储库并运行一些示例应用程序。
- 查看一些ML.NET 社区示例。
- 在ML.NET 视频 YouTube 播放列表上观看一些视频。
查看 ML.NET 的路线图,了解团队计划在明年开展哪些工作。
ML.NET 在使用 .NET Core 的 Windows、Linux 和 macOS 上运行,或在使用 .NET Framework 的 Windows 上运行。
ML.NET 还可以在 ARM64、Apple M1 和 Blazor Web Assembly 上运行。然而,也有一些限制。
所有平台均支持 64 位。Windows 支持 32 位,但 TensorFlow 和 LightGBM 相关功能除外。
查看发行说明以了解新内容。您还可以阅读博客文章,了解有关每个版本的更多详细信息。
首先,确保您已安装.NET Core 2.1或更高版本。ML.NET 也适用于 .NET Framework 4.6.1 或更高版本,但建议使用 4.7.2 或更高版本。
拥有应用程序后,您可以使用以下命令从 .NET Core CLI 安装 ML.NET NuGet 包:
dotnet add package Microsoft.ML
或从 NuGet 包管理器:
Install-Package Microsoft.ML
或者,您可以从 Visual Studio 的 NuGet 包管理器中或通过Paket添加 Microsoft.ML 包。
我们的 Azure DevOps 源中还提供了该项目的每日 NuGet 构建:
https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries/nuget/v3/index.json
要从源代码构建 ML.NET,请访问我们的开发人员指南。
| 调试 | 发布 | |
|---|---|---|
| 中央操作系统 | ||
| 乌班图 | ||
| 苹果系统 | ||
| Windows x64 | ||
| Windows完整框架 | ||
| Windows x86 | ||
| Windows NetCore3.1 |
ML.NET 的主要版本每年随主要 .NET 版本一起发布一次,从 2021 年 11 月的 ML.NET 1.7 和 .NET 6 开始,然后是 ML.NET 2.0 和 .NET 7,等等。我们将维护版本分支可选择以与 .NET 服务相同的节奏为 ML.NET 提供错误修复和/或次要功能。
查看发行说明以了解所有过去的 ML.NET 版本。
我们欢迎贡献!请查看我们的贡献指南。
- 加入我们的Discord社区。
- 太平洋时间每隔周三上午 10 点收看.NET 机器学习社区站立会议。
该项目采用了贡献者契约定义的行为准则,以阐明我们社区的预期行为。有关详细信息,请参阅.NET 基金会行为准则。
以下是用于训练模型以根据文本样本预测情绪的代码片段。您可以在示例存储库中找到完整的示例。
var dataPath = "sentiment.csv"; var mlContext = new MLContext(); var loader = mlContext.Data.CreateTextLoader(new[] { new TextLoader.Column("SentimentText", DataKind.String, 1), new TextLoader.Column("Label", DataKind.Boolean, 0), }, hasHeader: true, separatorChar: ','); var data = loader.Load(dataPath); var learningPipeline = mlContext.Transforms.Text.FeaturizeText("Features", "SentimentText") .Append(mlContext.BinaryClassification.Trainers.FastTree()); var model = learningPipeline.Fit(data);
现在我们可以从模型中做出推断(预测):
var predictionEngine = mlContext.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model); var prediction = predictionEngine.Predict(new SentimentData { SentimentText = "Today is a great day!" }); Console.WriteLine("prediction: " + prediction.Prediction);
ML.NET 根据MIT 许可证获得许可,并且可以免费用于商业用途。
ML.NET 是.NET 基金会的一部分。