109,339
社区成员




使用了ML组件,下面的代码可以生成预训练模型model.zip:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.ML;
using Microsoft.ML.Data;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MLContext mlContext = new MLContext();
InputData[] inputDatas = {
new InputData() { X_Value = 2.6F, Y_Value = 3.1F},
new InputData() { X_Value = 1.3F, Y_Value = 1.7F},
new InputData() { X_Value = 1.8F, Y_Value = 2.7F},
new InputData() { X_Value = 3.1F, Y_Value = 3.5F},
};
IDataView trainingData = mlContext.Data.LoadFromEnumerable(inputDatas);
var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "X_Value" }).Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Y_Value", maximumNumberOfIterations: 100));
var model = pipeline.Fit(trainingData);
var testHouseDataView = mlContext.Data.LoadFromEnumerable(inputDatas);
var testPriceDataView = model.Transform(testHouseDataView);
var metrics = mlContext.Regression.Evaluate(testPriceDataView, labelColumnName: "Y_Value");
mlContext.Model.Save(model, trainingData.Schema, "model.zip");
}
}
}
可是怎样使用这个模型呢?使用之前需要先反序列化,不知道怎么搞。
属性的作用:保护字段,对字段取值与赋值进行限定
MLContext 类怎么没有方法?
我觉得 {
new InputData() { X_Value = 2.6F, Y_Value = 3.1F},
new InputData() { X_Value = 1.3F, Y_Value = 1.7F},
new InputData() { X_Value = 1.8F, Y_Value = 2.7F},
new InputData() { X_Value = 3.1F, Y_Value = 3.5F},
}是集合,集合的声明是List,InputData[]是什么?
程序里的代码:
InputData[] inputDatas = {
new InputData() { X_Value = 2.6F, Y_Value = 3.1F},
new InputData() { X_Value = 1.3F, Y_Value = 1.7F},
new InputData() { X_Value = 1.8F, Y_Value = 2.7F},
new InputData() { X_Value = 3.1F, Y_Value = 3.5F},
};
关于MLContext 类的说明在:
https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.ml.mlcontext?view=ml-dotnet
没搞清楚那些属性怎么使用