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

推荐订阅源

J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
C
Check Point Blog
D
Docker
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
量子位
有赞技术团队
有赞技术团队
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
M
MIT News - Artificial intelligence
B
Blog
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
月光博客
月光博客

博客园 - 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程序运行后界面