You need to enable JavaScript to run this app. ML.NET Model Builder 16.6.1如何调用RetrainPipeline方法实现模型重训
优惠活动
大模型
产品
解决方案
定价
更多

ML.NET Model Builder 16.6.1如何调用RetrainPipeline方法实现模型重训

调用ML.NET Model Builder生成的重训方法的实现方案

你可以直接按照以下步骤在Main方法中完成重训逻辑:


前置准备

  • 确认项目已安装与16.6.1版本Model Builder匹配的Microsoft.ML系列NuGet包
  • 定义与训练数据结构完全一致的输入类,字段名、类型需和Model Builder训练时使用的数据集保持一致:
// 字段需和你训练时的输入结构完全匹配
public class ModelInput
{
    public string grade2 { get; set; }
    public string grade3 { get; set; }
    public string grade4 { get; set; }
    public string grade5 { get; set; }
    public string grade6 { get; set; }
    public string grade7 { get; set; }
    public string grade8 { get; set; }
    public string grade9 { get; set; }
    public string grade10 { get; set; }
    // 标签字段
    public string supv { get; set; }
}

Main方法中完整重训逻辑

using Microsoft.ML;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        // 1. 初始化MLContext实例,可传入随机种子保证重训结果可复现
        var mlContext = new MLContext(seed: 1);

        // 2. 加载训练数据,示例为内存数据,也可从CSV、数据库等其他来源加载
        var trainingData = new List<ModelInput>
        {
            // 替换为你的实际训练数据
            new ModelInput{ grade2="优", grade3="良", grade4="优", grade5="良", grade6="优", grade7="良", grade8="优", grade9="良", grade10="优", supv="A类" },
            new ModelInput{ grade2="良", grade3="中", grade4="良", grade5="中", grade6="良", grade7="中", grade8="良", grade9="中", grade10="良", supv="B类" }
            // 更多训练数据...
        };
        IDataView trainDataView = mlContext.Data.LoadFromEnumerable(trainingData);

        // 3. 调用Model Builder自动生成的重训方法完成模型训练
        ITransformer retrainedModel = MLModel1.RetrainPipeline(mlContext, trainDataView);

        // 4. 保存重训后的模型,覆盖原有的MLModel1.zip即可兼容原有预测逻辑
        mlContext.Model.Save(retrainedModel, trainDataView.Schema, "MLModel1.zip");

        // 可选:立刻测试重训后的模型效果
        var predictor = mlContext.Model.CreatePredictionEngine<ModelInput, MLModel1.ModelOutput>(retrainedModel);
        var testInput = new ModelInput { /* 填入测试输入数据 */ };
        var predictionResult = predictor.Predict(testInput);
    }
}

注意事项

  • 训练数据的supv标签字段值必须包含初始训练时的所有标签类别,否则会出现预测偏差
  • 如果从CSV加载训练数据,可直接调用mlContext.Data.LoadFromTextFile<ModelInput>("训练数据路径.csv", separatorChar:',', hasHeader:true)实现加载
  • 重训生成的模型和Model Builder初始生成的模型结构完全一致,原有调用模型预测的代码无需修改,直接替换模型文件即可生效

内容的提问来源于stack exchange,提问作者Gattan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 14:24:04