首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用keras保存的ML.NET加载模型

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

Stack Overflow用户
提问于 2019-04-30 22:38:24
回答 3查看 6.7K关注 0票数 4

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

在ML.NET中,有没有一种方法可以把用python导出的模型和经过训练的权重加载到模型对象中?

我在documentation1中看到可以加载以前保存的模型,但显然是存储在.zip中,我找不到格式(可能是为了编写一个脚本,从python中获取模型并将其‘转换’为ML.NET模型。

显然,hdf5格式是一个standard2,有没有办法用ML.NET加载它?

1

2

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-01 21:27:16

票数 6
EN

Stack Overflow用户

发布于 2020-09-23 01:17:21

我也经历过同样的过程,我强烈建议先使用Python的Keras2onnx库包将你的Keras模块转换成"onnx“格式。我使用的简单代码如下:

代码语言:javascript
复制
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#方面,在如何处理数据(即图像)和做出预测方面,可以效仿微软的例子(https://docs.microsoft.com/en-us/dotnet/machine-learning/tutorials/object-detection-onnx)。

您可以将ML.NET与dotNet核心或Net framework > 4.7一起使用。以下摘录了如何读取图像文件并运行model.onnx进行预测。

代码语言:javascript
复制
///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类运行负载模型和预测方法。

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

票数 1
EN

Stack Overflow用户

发布于 2019-05-03 15:26:19

正如Cihan、Yakar和Jon提到的,解决方案是将模型转换为ONNX。我找到了一个很好的教程,解释了如何做到这一点:

https://fizzylogic.nl/2018/02/16/heres-why-microsoft-cognitive-toolkit-is-the-coolest-deep-learning-framework-around/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55923311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档