Как упоминал @Kookei, есть 2 способа создания WinML: способ «In-Box» и способ NuGet .
In-Box в основном просто означает ссылку на любые библиотеки DLL WinML, которые включены в сам Windows (например, в C: \ Window \ System32).
Пакет NuGet содержит собственный более свежий набор библиотек DLL, кроме Обеспечение поддержки новейшего набора опций ONNX имеет очевидное преимущество, так как позволяет легко распространять двоичный файл на более старые версии Windows, лишенные каких-либо встроенных возможностей машинного обучения. Просто установите пакет через диспетчер пакетов Nuget в Visual Studio и создайте свое решение; и вы обнаружите, что выходной каталог теперь содержит необходимые библиотеки DLL (в настоящее время directml.dll
, Microsoft.AI.MachineLearning.dll
и onnxruntime.dll
) вместе со сгенерированным EXE, готовым к развертыванию в той же папке.
В терминах исходного кода, вот как две версии: различаются :
In-Box:
#include <winrt/Windows.AI.MachineLearning.h>
using WinMLModel = winrt::windows::AI::MachineLearning
NuGet:
#include <winrt/Microsoft.AI.MachineLearning.h>
using WinMLModel = winrt::Microsoft::AI::MachineLearning
In Другими словами, разница только в том, используете ли вы заголовок / пространство имен Window
или Microsoft
.