【问题标题】:ML.NET export to ONNXML.NET 导出到 ONNX
【发布时间】:2021-01-11 06:15:20
【问题描述】:

NET GUI 工具来训练模型。该模型适用于 C# 应用程序,但我希望它采用 ONNX 格式。我找到了在模型格式之间转换的工具,但找不到任何 ML.NET 生成格式的东西。显然这是一些 zip 文件,我对此一无所知。有谁知道转换为 ONNX 的工具。 谢谢

微软的 ML.Net 模型生成器生成代码


    // Load Data
                IDataView trainingDataView = mlContext.Data.LoadFromTextFile<ModelInput>(
                                                path: TRAIN_DATA_FILEPATH,
                                                hasHeader: true,
                                                separatorChar: ',',
                                                allowQuoting: true,
                                                allowSparse: false);
    
                // Build training pipeline
                IEstimator<ITransformer> trainingPipeline = BuildTrainingPipeline(mlContext);
    
                // Train Model
                ITransformer mlModel = TrainModel(mlContext, trainingDataView, trainingPipeline);
    
                // Evaluate quality of Model
                Evaluate(mlContext, trainingDataView, trainingPipeline);
    
                // Save model
                SaveModel       (mlContext, mlModel, MODEL_FILE, trainingDataView.Schema);
    
    
                var path = GetAbsolutePath(MODEL_FILE);
                path = new FileInfo(path).Directory.FullName;
                path = Path.Combine(path, "mymodel.onnx");
    
                using (var onnx = File.Open(path, FileMode.OpenOrCreate))
                {
                    mlContext.Model.ConvertToOnnx(mlModel, trainingDataView, onnx);
                }

来自

var path = GetAbsolutePath(MODEL_FILE);
                path = new FileInfo(path).Directory.FullName;
                path = Path.Combine(path, "mymodel.onnx");
    
                using (var onnx = File.Open(path, FileMode.OpenOrCreate))
                {
                    mlContext.Model.ConvertToOnnx(mlModel, trainingDataView, onnx);
                }

我已经修改了。 我正在获取 onnx 文件,但我无法运行它(推理)。同样,我尝试使用 WinML Dashboard 打开它,但它也无法运行生成的 onnx。我想知道它可能是它生成的 onnx 版本吗? 该模型是简单回归,所有输入浮点数并输出一个浮点数。

【问题讨论】:

  • 您的问题有解决方案吗?我有同样的问题。我想使用模型构建器训练模型,然后将其转换为 onnx,但到目前为止还没有成功。 Onnx 转换器包不起作用并引发错误。

标签: onnx ml.net-model-builder


【解决方案1】:

使用Microsoft.ML.OnnxConverter NuGet 包。像这样的:

var mlContext = new MLContext();

...

IDataView trainingData = mlContext.Data.LoadFromEnumerable(inputData);

var pipeline = mlContext.Transforms.Concatenate("Features", ... )
    .Append(...));

var model = pipeline.Fit(trainingData);

using (var onnx = File.Open("mymodel.onnx", FileMode.OpenOrCreate))
{
    mlContext.Model.ConvertToOnnx(model, trainingData, onnx);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2021-09-01
    • 2021-05-12
    • 2022-07-12
    • 2019-10-07
    相关资源
    最近更新 更多