ml.net例子筆記5-ml.net v2版本例子運行續
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
工程編譯后,首先按照上篇【 http://www.rzrgm.cn/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 中,我們已將部分復雜性抽象到場景級別。【具體結構參考 http://www.rzrgm.cn/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程序運行后界面
