惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 2012

8款主流AI编程Agent全方位对比报告 CLI工具的分析和对比 AI 记忆和记忆管理操作系统 supabase架构和源码的概要 k0s k3s k8s小结 kali wsl桌面使用 Alpine 、Arch Linux 和 NixOS 3个linux版比较 跨多端前端框架对比 国产操作系统概要 docker容器桌面 kasm IDE AI- vscode / cursor / openfuse ide ml.net例子笔记8-生成式AI-大模型LLM ml.net例子笔记7-ml.net与OMNX ml.net例子笔记6-ml.net v2之AutoML ml.net例子笔记4-ml.net v2版本例子运行 ml.net例子笔记3-Infer.net概率机器学习库 ml.net例子笔记2-概念和Widnows AI Studio ml.net例子笔记1 linuxer眼中ml.net机器学习概要 vlang
ml.net例子笔记5-ml.net v2版本例子运行续
2012 · 2023-12-20 · via 博客园 - 2012

Torch的使用被阻断了一下,继续看下其 ml.net2的例子
https://github.com/dotnet/machinelearning-samples/tree/main/samples/csharp/getting-started/MLNET2
https://gitee.com/mirrors_dotnet/machinelearning-samples/tree/main/samples/csharp/getting-started/MLNET2

文本分类

TextClassification 
工程编译后,首先按照上篇【 https://www.cnblogs.com/2018/p/17915818.html 】将Torch的文件替换遍【库文件太大,可以在这下载
链接: https://pan.baidu.com/s/1h19SYCNcnVVaHA_s87KhDg?pwd=riub 提取码: riub 】


这个直接使用训练的模型 ReviewSentiment.zip

private static string MLNetModelPath = Path.GetFullPath("ReviewSentiment.zip");
            var mlContext = new MLContext();
            // (Optional) Use GPU
            //mlContext.GpuDeviceId = 0;
            //mlContext.FallbackToCpu = false;
            ITransformer mlModel = mlContext.Model.Load(MLNetModelPath, out var _);
            return mlContext.Model.CreatePredictionEngine<ModelInput, ModelOutput>(mlModel);

运行预测

using TextClassification;
var sampleData = new ReviewSentiment.ModelInput()
{
    Col0 = @"Crust is not good.",
};
//Load model and predict output
var result = ReviewSentiment.Predict(sampleData);
// Print sentiment
Console.WriteLine($"Sentiment: {(result.PredictedLabel == 0 ? "Negative" : "Positive")}");

$ ./TextClassification.exe
Sentiment: Negative

文本分类Model Builder版本

Model Builder的概念

ML.NET 模型生成器是一个直观的图形化 Visual Studio 扩展,用于生成、训练和部署自定义机器学习模型。
模型生成器使用自动化的机器学习 (AutoML) 来探索不同的机器学习算法和设置,以帮助找到最合适的方案。
使用模型生成器不需要具备机器学习的专业知识。 只需要一些数据,和确定要解决的问题。 模型生成器会生成将模型添加到 .NET 应用程序的代码。

文本分类 API 由 TorchSharp 提供支持。TorchSharp 是一个 .NET 库,提供对 libtorch 的访问,libtorch 是支持 PyTorch 的库。TorchSharp 包含用于在 .NET 中从头开始训练神经网络的构建基块。然而,TorchSharp 组件是低级的,从头开始构建神经网络有一个陡峭的学习曲线。在 ML.NET 中,我们已将部分复杂性抽象到场景级别。【具体结构参考 https://www.cnblogs.com/2018/p/17915818.html
在与 Microsoft Research 的直接合作中,我们采用了 NAS-BERT(通过神经架构搜索获得的 BERT 变体)的 TorchSharp 实现,并将其添加到 ML.NET 中。使用此模型的预训练版本,文本分类 API 使用数据来微调模型。

具体的例子中英文地址
https://learn.microsoft.com/zh-cn/dotnet/machine-learning/tutorials/sentiment-analysis-model-builder
https://gitee.com/mirrors_dotnet/machinelearning-samples/tree/main/samples/modelbuilder/TextClassification_Sentiment_Razor

具体的步骤是2个:
1 训练模型:
使用这个数据通过vs 2022内置的modelbuilder进行训练
https://raw.githubusercontent.com/dotnet/machinelearning/main/test/data/wikipedia-detox-250-line-data.tsv
训练后,可以自动生成如下的文件

  • SentimentAnalysis.consumption.cs - 此文件包含 ModelInput 和 ModelOutput 架构,以及为使用模型生成的 Predict 函数。
  • SentimentAnalysis.training.cs - 此文件包含 Model Builder 选择的训练管道(数据转换、训练器、训练器超参数)以训练模型。 你可以使用此管道重新训练模型。
  • SentimentAnalysis.zip - 这是一个已序列化的 zip 文件,它表示经过训练的 ML.NET 模型。

2 使用模型
https://gitee.com/mirrors_dotnet/machinelearning-samples/tree/main/samples/modelbuilder/TextClassification_Sentiment_Razor/SentimentRazor
这个就是在 web中使用的例子
考虑Ml Context的线程安全问题,使用了线程池
WEB程序运行后界面