我用Python和Keras实现了一个神经网络。训练完成后,我导出了模型,得到两个文件:model.js和model.h5。现在我想在一个.NET项目中进行实时分类,并希望使用这个训练好的神经网络来完成这项任务。
有没有办法在ML.NET中加载用Python导出的模型和训练权重到一个模型对象中呢?
我在文档[1]中看到可以加载之前保存的模型,但显然它是以.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模型