首页 > 其他分享 >ml.net例子笔记5-ml.net v2版本例子运行续

ml.net例子笔记5-ml.net v2版本例子运行续

时间:2023-12-20 13:56:19浏览次数:29  
标签:samples ml 模型 例子 https dotnet net com NET

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

标签:samples,ml,模型,例子,https,dotnet,net,com,NET
From: https://www.cnblogs.com/2018/p/17916341.html

相关文章

  • 【技术探讨】WiMi-net无线自组网通信方案的优势是什么?
        目前,很多的厂家都有自己的无线自组网方案,每一家的方案又都不能互通,那么对于用户来说,在第一时间就能选择一个实用性、适用性强的无线自组网方案非常的重要,和业内其他的433MHz无线通讯的组网方案对比,那么为什么WiMi-net微网高通的无线自组网方案更值得推荐呢?    ......
  • 【Dotnet 工具箱】推荐一个 Flutter 和 .NET 开源的实时聊天 APP
    1.推荐一个Flutter和.NET开源的实时聊天APPHeyy-chat-appHeyy-chat-app是一个开源的聊天应用,使用Flutter、Asp.NetCoreWebApi、SignalR、WebRTC等技术构建的。Flutter作为用户客户端。Asp.NetCoreRESTful作为后端服务。Signalr和WebRTC用于实时通信。SQ......
  • pytest + yaml 框架 -62.jenkins+allure+钉钉通知添加测试结果
    前言上一篇pytest+yaml框架-60.git+jenkins+allure+钉钉通知反馈已经实现测试结果用钉钉通知。本篇继续在钉钉通知里添加测试的汇总结果,此功能在pytest-yaml-yoyov1.5.2版本上实现。EnvironmentInjector插件在运行完用例后会生成一个summary.json文件,汇总测试结果......
  • Could not build wheels for pillow, which is required to install pyproject.toml-b
     参考来源,致敬大佬。ERROR:CouldnotbuildwheelsforPillow,whichisrequiredtoinstallpyproject.toml-basedprojects-CSDN博客报错:Couldnotbuildwheelsforpillow,whichisrequiredtoinstallpyproject.toml-basedprojects的解决-CSDN博客 本人小白......
  • Kubernetes基础总结
    一、k8s简介kubernetes——容器、分布式架构kubernetes本质是一组服务器集群,可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。主要功能:自我修复弹性伸缩——自动调整运行的容器数量服务发现——自动找依赖负载均衡——自动实现请求的负载均衡版本退回存......
  • 10个常见的 Kubernetes 陷阱和挑战
    Kubernetes是最流行的容器编排和部署平台。它的强大功能特性,可以保障在生产中可靠地运行容器化应用程序。然而,有灵活性的同时也带来了复杂性,在本文中,我们将探讨许多团队遇到的10个常见Kubernetes陷阱。能够识别并避免这些挑战将提高应用程序的可扩展性、可靠性和安全性,同时让你......
  • kubernetes(k8s)Gitlab CI Runner 的安装
    kubernetes(k8s)GitlabCIRunner的安装简介从Gitlab8.0开始,GitlabCI就已经集成在Gitlab中,只要在项目中添加一个.gitlab-ci.yml文件,然后添加一个Runner,即可进行持续集成。在介绍GitlabCI之前,先看看一些GitlabCI的一些相关概念。流程逻辑如下:Jobs->Stages->Pipel......
  • .Net +Ajax大文件断点续传
    什么是断点续传大文件断点续传指的是在上传或下载大文件时,当传输中断或出现错误时,可以通过记录已经传输的数据和位置,下次从中断的位置继续传输,避免重新开始传输整个文件的过程,从而提高传输效率和稳定性。实现思路获取文件大小和已经传输的大小:在开始上传或下载文件之前,需要获取文......
  • ml.net例子笔记4-ml.net v2版本例子运行
    1Ml.NET版本更新当前的Microsoft.ML的软件版本如下:https://gitee.com/mirrors_feiyun0112/machinelearning-samples.zh-cn例子使用版本为1.6.0例子工程更换版本的办法:1Directory.Build.propsnuget.config修改samples目录下文件Directory.Build.props的内容~~~~*......
  • 界面控件DevExpress v23.2全新发布 - 官宣正式支持.NET 8
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力......