发布于 2019-05-01 21:27:16
ML.net支持ONNX模型。
您可以通过WinMLTools将您的kreas模型转换为ONNX模型。
发布于 2020-09-23 01:17:21
我也经历过同样的过程,我强烈建议先使用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#方面,在如何处理数据(即图像)和做出预测方面,可以效仿微软的例子(https://docs.microsoft.com/en-us/dotnet/machine-learning/tutorials/object-detection-onnx)。
您可以将ML.NET与dotNet核心或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类运行负载模型和预测方法。
这就是从C#生成的python Keras模型预测所需的全部内容。
发布于 2019-05-03 15:26:19
正如Cihan、Yakar和Jon提到的,解决方案是将模型转换为ONNX。我找到了一个很好的教程,解释了如何做到这一点:
https://stackoverflow.com/questions/55923311
复制相似问题