为了通过WinML使用自定义TF模型,我使用tf2onnx转换器将其转换为onnx。这种转换最终使用了opset 11。不幸的是,我无法在WinRT c++库中加载该模型,因此我对操作系统支持感到困惑:根据发布说明,5月份最新的WinML版本支持opset 11。我更新了c++并下载了最新的Windows10SDK,c++ API是否已经包含了最新的onnx支持?或者在WinML c++中是否有其他方法使用我的模型?
发布于 2020-07-17 16:56:41
Windows的最新版本包含对opset 9的支持,Microsoft.AI.MachineLearning NuGet包的最新版本包含对opset 11的支持。
请参阅以下发行说明:https://learn.microsoft.com/en-us/windows/ai/windows-ml/release-notes
您可以在这里找到最新的Microsoft.AI.MachineLearning NuGet包:https://www.nuget.org/packages/Microsoft.AI.MachineLearning/
发布于 2020-08-07 05:46:06
正如@Kookei所提到的,构建WinML的方法有两种:“箱内”方式与NuGet方式。
Window基本上意味着链接到WinML本身包含的任何DLL(例如,在C:\Window\System32 32中)。
NuGet包包含自己最新的一组DLL,除了提供对最新ONNX操作系统的支持外,它还有一个明显的优点,即允许您轻松地将二进制文件分发给旧版本的Windows,而缺乏任何内置的机器学习功能。只要通过Visual的Nuget安装这个包,并构建您的解决方案,您就会发现输出目录现在包含所需的DLL(当前是directml.dll、Microsoft.AI.MachineLearning.dll和onnxruntime.dll)以及生成的EXE,为相同文件夹的部署做好了准备。
在源代码方面,这两个版本都是显赫
收件箱:
#include <winrt/Windows.AI.MachineLearning.h>
using WinMLModel = winrt::windows::AI::MachineLearningNuGet:
#include <winrt/Microsoft.AI.MachineLearning.h>
using WinMLModel = winrt::Microsoft::AI::MachineLearning换句话说,唯一的区别是您是使用Window还是Microsoft头/命名空间。
发布于 2020-12-16 20:39:23
您还可以在版本矩阵表中跟踪受支持的操作系统版本。
https://stackoverflow.com/questions/62818606
复制相似问题