Dr. Marcel Tilly Microsoft AI & Research

„Obwohl WinML immer noch ein Pre-Release ist, kann man schon gut erkennen, wo die Reise hingeht.“

Es scheint, als habe sich ganz heimlich und unter dem Radar der meisten ein weiteres AI-Framework eingeschlichen, das in Kürze auch als finales Release erscheinen wird. Grund genug, sich dem Ganzen schon einmal etwas anzunähern. Bei dem Framework oder SDK handelt sich um Windows ML. Was ist aber nun das Besondere und warum zum Teufel braucht es ein weiteres Framework, um neuronale Netze auszuführen?

Dass Windows ML mehr ist als einfach nur Microsofts Antwort auf Tensorflow oder Keras auf GPUs und TPUS, soll dieser Artikel zeigen. Windows ML, oder kurz WinML, ist eine Implementierung auf Basis von DirectX 12. Wenn man bedenkt, dass die meisten AI-Frameworks die GPU als Hardwarebeschleunigung zur Berechnung und Ausführung von Deep Neural Networks verwenden, liegt es nahe, dass man die GPU und auch andere DirectX Devices über DirectML abstrahieren kann. Schließlich macht DirectX das bei Grafikanwendungen und Spielen auch. Da ist es auf der Anwendungsschicht egal, ob eine NVidia GPU, eine Radeon-Grafikkarte oder nur eine CPU zur Verfügung steht. Das wird durch DirectX und in unserem Fall durch die WinML Runtime gekapselt (Abb. 1).

Abb. 1: WinML-Stack

Abb. 1: WinML-Stack

Als Applikationsschicht werden APIs zu C#, C++ und JavaScript angeboten. Entweder werden die Modelle in WinML trainiert (zurzeit eher unüblich) oder über das offene Format Open Neural Network eXchange Format (ONNX) importiert. ONNX ist ein offenes Format, das zum Austausch von DL-Modellen von Facebook und Microsoft entwickelt wurde, um eine größere Interoperabilität zwischen den einzelnen Frameworks in der AI-Community zu erreichen. Die Inference Engine in WinML kann die ONNX-Modelle importieren und dann lokal innerhalb einer Windows Anwendung ausführen.

Das ist sehr schick und lässt sich zudem elegant in einer C#-UWP-App implementieren. Das ist Grund genug, sich das Ganze einmal an einem kleinen Beispiel etwas genauer anzusehen.

Voraussetzungen

Ganz so einfach geht es nicht, denn da WinML Teil der Windows-Plattform ist, sind ein paar Grundvoraussetzung zu erfüllen. Zum einen benötigt man ein Windows-10-Betriebssystem und die OS-Build-Nummer sollte mindestens 17738 sein. Diese Build-Nummer erfährt man, wenn man WIN + R drückt und dann in das Feld winver eingibt. In dem Fenster steht dann die installierte Build-Nummer. Außerdem benötigt man das Windows 10 SDK 17738 oder neuer. Die Version des installierten Windows 10 SDK erhält man aus der Datei C:\Program Files (x86)\Windows Kits\10\ SDKManifest.xml. Und last but not least, ein Visual Studio 2017. Schon ist man gerüstet für das Abenteuer WinML!

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 12.18 - "KI für den Prüfstand"

Alle Infos zum Heft
579864404Einführung in WinML
X
- Gib Deinen Standort ein -
- or -