在 ML.NET 中使用从 python 创建的模型

问题描述

我们有一个场景,我们需要使用机器学习算法来预测一个值。由于一些问题,我们想在 ML.NET 中执行此操作。

我们在一个项目中尝试了 AutoML,并用近 8 万条数据记录对其进行了训练。我们训练数据超过 30 分钟。 csv 文件为 22MB。数据如下所示。

------------------------------------
Col1                        col2
------------------------------------
Some text                    21
Some other text               2

我们有一些上述类型的历史数据。我们需要从 col1 文本中预测 col2。 即使列是整数,它也以小数形式预测结果。

有人在 python 中创建了一个模型,它现在按预期工作。我们想在 ML.NET 中使用它。

我们是否有可能在 ML.NET 中使用从 Python 创建的模型?

解决方法

有几种方法,具体取决于它是 Tensorflow 模型还是来自其他框架。

如果是 Tensorflow 模型,则可以使用 Microsoft.ML.TensorFlow 包中的 mlContext.Model.LoadTensorFlowModel 方法直接加载。

var tensorFlowModel = context.Model.LoadTensorFlowModel(_modelPath);

如果是任何其他模型,例如 Keras 或 PyTorch 模型,则可以使用 ONNX 转换器包之一将其转换为 ONNX 格式。这是list如何使用多种不同格式执行此操作的方法。

拥有 ONNX 模型后,您可以使用 Microsoft.ML.OnnxTransformer 包,该包将为您提供 ApplyOnnxModel 方法。

mlContext.Transforms.ApplyOnnxModel(modelFile: "Model File",outputColumnName: "Output column name",inputColumnName: "Input column name")

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...