-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMLModel1.consumption.cs
120 lines (91 loc) · 3.67 KB
/
MLModel1.consumption.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// This file was auto-generated by ML.NET Model Builder.
using Microsoft.ML;
using Microsoft.ML.Data;
using System;
using System.Linq;
using System.IO;
using System.Collections.Generic;
namespace MLconsoleApp
{
public partial class MLModel1
{
/// <summary>
/// model input class for MLModel1.
/// </summary>
#region model input class
public class ModelInput
{
[ColumnName(@"longitude")]
public float Longitude { get; set; }
[ColumnName(@"latitude")]
public float Latitude { get; set; }
[ColumnName(@"housing_median_age")]
public float Housing_median_age { get; set; }
[ColumnName(@"total_rooms")]
public float Total_rooms { get; set; }
[ColumnName(@"total_bedrooms")]
public float Total_bedrooms { get; set; }
[ColumnName(@"population")]
public float Population { get; set; }
[ColumnName(@"households")]
public float Households { get; set; }
[ColumnName(@"median_income")]
public float Median_income { get; set; }
[ColumnName(@"median_house_value")]
public float Median_house_value { get; set; }
[ColumnName(@"ocean_proximity")]
public string Ocean_proximity { get; set; }
}
#endregion
/// <summary>
/// model output class for MLModel1.
/// </summary>
#region model output class
public class ModelOutput
{
[ColumnName(@"longitude")]
public float Longitude { get; set; }
[ColumnName(@"latitude")]
public float Latitude { get; set; }
[ColumnName(@"housing_median_age")]
public float Housing_median_age { get; set; }
[ColumnName(@"total_rooms")]
public float Total_rooms { get; set; }
[ColumnName(@"total_bedrooms")]
public float Total_bedrooms { get; set; }
[ColumnName(@"population")]
public float Population { get; set; }
[ColumnName(@"households")]
public float Households { get; set; }
[ColumnName(@"median_income")]
public float Median_income { get; set; }
[ColumnName(@"median_house_value")]
public float Median_house_value { get; set; }
[ColumnName(@"ocean_proximity")]
public float[] Ocean_proximity { get; set; }
[ColumnName(@"Features")]
public float[] Features { get; set; }
[ColumnName(@"Score")]
public float Score { get; set; }
}
#endregion
private static string MLNetModelPath = Path.GetFullPath("MLModel1.zip");
public static readonly Lazy<PredictionEngine<ModelInput, ModelOutput>> PredictEngine = new Lazy<PredictionEngine<ModelInput, ModelOutput>>(() => CreatePredictEngine(), true);
/// <summary>
/// Use this method to predict on <see cref="ModelInput"/>.
/// </summary>
/// <param name="input">model input.</param>
/// <returns><seealso cref=" ModelOutput"/></returns>
public static ModelOutput Predict(ModelInput input)
{
var predEngine = PredictEngine.Value;
return predEngine.Predict(input);
}
private static PredictionEngine<ModelInput, ModelOutput> CreatePredictEngine()
{
var mlContext = new MLContext();
ITransformer mlModel = mlContext.Model.Load(MLNetModelPath, out var _);
return mlContext.Model.CreatePredictionEngine<ModelInput, ModelOutput>(mlModel);
}
}
}