summaryrefslogtreecommitdiff
path: root/RhSolutions.ML.Builder/Program.cs
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2023-09-20 13:46:55 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2023-09-20 13:46:55 +0300
commitcde4fca02029cf3552cb63c050d3002bab68828f (patch)
tree35f1c25e6c0089708f607dd11a81682209ce4123 /RhSolutions.ML.Builder/Program.cs
parent0c85e000b401c1bab36d07b82c4a0b727562c42a (diff)
Solution organize
Diffstat (limited to 'RhSolutions.ML.Builder/Program.cs')
-rw-r--r--RhSolutions.ML.Builder/Program.cs47
1 files changed, 8 insertions, 39 deletions
diff --git a/RhSolutions.ML.Builder/Program.cs b/RhSolutions.ML.Builder/Program.cs
index 898e872..ffb62e3 100644
--- a/RhSolutions.ML.Builder/Program.cs
+++ b/RhSolutions.ML.Builder/Program.cs
@@ -1,42 +1,11 @@
-using Microsoft.ML;
+using RhSolutions.ML.Lib;
-namespace RhSolutions.ML.Builder
+try
{
- public class Program
- {
- private static string _appPath = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) ?? ".";
- private static MLContext _mlContext = new MLContext(seed: 0);
- public static void Main()
- {
- var _trainDataView = _mlContext.Data.LoadFromTextFile<Product>(
- Path.Combine(_appPath, "..", "..", "..", "Data", "train.tsv"), hasHeader: true);
- var pipeline = ProcessData();
- BuildAndTrainModel(_trainDataView, pipeline, out ITransformer trainedModel);
- SaveModelAsFile(_mlContext, _trainDataView.Schema, trainedModel);
- }
-
- private static IEstimator<ITransformer> ProcessData()
- {
- var pipeline = _mlContext.Transforms.Conversion.MapValueToKey(inputColumnName: "Type", outputColumnName: "Label")
- .Append(_mlContext.Transforms.Text.FeaturizeText(inputColumnName: "Name", outputColumnName: "NameFeaturized"))
- .Append(_mlContext.Transforms.Concatenate("Features", "NameFeaturized"))
- .AppendCacheCheckpoint(_mlContext);
- return pipeline;
- }
-
- private static IEstimator<ITransformer> BuildAndTrainModel(IDataView trainingDataView, IEstimator<ITransformer> pipeline, out ITransformer trainedModel)
- {
- var trainingPipeline = pipeline.Append(_mlContext.MulticlassClassification.Trainers.SdcaMaximumEntropy("Label", "Features"))
- .Append(_mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel"));
-
- trainedModel = trainingPipeline.Fit(trainingDataView);
- return trainingPipeline;
- }
-
- private static void SaveModelAsFile(MLContext mlContext, DataViewSchema trainingDataViewSchema, ITransformer model)
- {
- mlContext.Model.Save(model, trainingDataViewSchema,
- Path.Combine(_appPath, "..", "..", "..", "Models", "model.zip"));
- }
- }
+ RhSolutionsMLBuilder.RebuildModel();
+ Console.WriteLine("Model built");
+}
+catch (Exception ex)
+{
+ Console.WriteLine(ex.Message);
} \ No newline at end of file