无法使用WinML加载模型

时间:2018-10-04 22:32:34

标签: c# uwp windows-machine-learning

由于WinML仍是一个相当新的并且不断变化,我希望知道在尝试加载通过Custom Vision Service Export创建的ONNX文件时是否有人遇到此错误。

类型错误:节点(ZipMap)的输出arg(损失)的类型(map(字符串,张量(浮点数)))与预期的类型(seq(map(字符串,张量(浮点数))))不匹配

使用Windows.AI.MachineLearning;

Windows RS5 1809(内部版本17763.1) UWP SDK 17763

此链接的测试代码: https://docs.microsoft.com/en-us/uwp/api/windows.ai.machinelearning

                // Load and create the model
            var modelFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///{_modelFileName}"));
            _model = await LearningModel.LoadFromStorageFileAsync(modelFile);

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

在Windows.AI.MachineLearning时,Windows内部版本17763(RS5)要求ONNX版本1.2。

Azure自定义视觉服务今天支持此功能。

Here是围绕一个示例应用程序执行此操作的帖子。

请注意,绑定时需要确保输出数据类型匹配。在c#中,它看起来像这样:

 public sealed class ModelOutput
        {
            public TensorString ClassLabel = TensorString.Create(new long[] { 1, 1 });
            public IList<IDictionary<string, float>> Loss = new List<IDictionary<string, float>>();
        }

答案 1 :(得分:0)

我从一位微软合作伙伴那里收到信息,该信息指出windows.ai.machinelearning api仅支持ONNX2。他没有提供一个日期,我们可以期望自定义视觉服务导出版本2文件。