繁体   English   中英

使用用 keras 保存的 ML.NET 加载模型

[英]Load model with ML.NET saved with keras

我有一个用 Python 和 Keras 实现的神经网络。 训练完成后,我导出了模型,并且有两个文件:model.js 和 model.h5。 现在我想在 .NET 项目中进行实时分类,我想为此使用训练有素的神经网络。

ML.NET 中是否有一种方法可以将模型和用 python 导出的训练权重加载到模型对象中?

我在文档 [1] 中看到可以加载以前保存的模型,但显然存储在 a.zip 中,我找不到格式(可能是制作一个脚本,从 python 获取模型并“翻译”它到 ML.NET 模型。

显然 hdf5 格式是标准 [2],有没有办法用 ML.NET 加载它?

[1] https://learn.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/consuming-model-ml-net

[2] https://support.hdfgroup.org/HDF5/doc1.6/UG/10_Datasets.html

ML.net 支持 ONNX 模型,如本例所示。

您可以通过WinMLTools将您的 keras 模型转换为 ONNX 模型

我经历过相同的路径,我强烈建议首先使用 Python 的 Keras2onnx 库包将您的 Keras 模块转换为“onnx”格式。 我使用的简单代码如下:

reconstructed_model = keras.models.load_model("<your location>\\my_model")

import onnx
import keras2onnx

model_name_onnx = "model.onnx"

onnx_model = keras2onnx.convert_keras(reconstructed_model, reconstructed_model.name)

onnx.save_model(onnx_model, model_name_onnx)

在 C# 方面,在如何处理数据(即图像)和进行预测方面,遵循 Microsoft 示例( https://learn.microsoft.com/en-us/dotnet/machine-learning/tutorials/object -检测-onnx

您可以将 ML.NET 与 dotNet Core 或 Net framework > 4.7 一起使用。 这是关于如何读取图像文件并运行 model.onnx 进行预测的摘录。

///First, load the data into an IDataView.
   IEnumerable<ImageNetData> images = ImageNetData.ReadFromFile(imagesFolder);
   IDataView imageDataView = mlContext.Data.LoadFromEnumerable(images);

   var modelScorer = new OnnxModelScorer(imagesFolder, modelFilePath, mlContext);

// Use model to score data
   IEnumerable<float[]> probabilities = modelScorer.Score(imageDataView);

ImageNetData 类基本上通过过滤图像文件(从目录)读取 imageFolder 中的图像,并使用两个属性标识它们,一个标签是文件名,ImagePath 是图像文件的路径。 OnnxModelScorer 类运行加载模型和预测方法。

这就是 python Keras 从 C# 生成模型预测所需的全部内容。

我有一个用 Keras 用 Python 实现的神经网络。 一旦我训练了它,我就导出了模型,我得到了两个文件:model.js 和 model.h5。 现在我想在 .NET 项目中实时分类,我想使用经过训练的神经网络。

在 ML.NET 中有没有办法将模型和用 python 导出的训练权重加载到模型对象中?

我在文档 [1] 中看到可以加载以前保存的模型,但显然存储在 .zip 中,我找不到格式(也许制作一个脚本,从 python 中获取模型并“翻译”它到 ML.NET 模型。

显然 hdf5 格式是标准 [2],有没有办法用 ML.NET 加载它?

[1] https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/sumption-model-ml-net

[2] https://support.hdfgroup.org/HDF5/doc1.6/UG/10_Datasets.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM