HoloLens (1. Generation) und Azure 307: Machine Learning


Hinweis

Die Tutorials der Mixed Reality Academy wurden im Hinblick auf HoloLens (1. Gen.) und immersive Mixed Reality-Headsets entworfen. Daher halten wir es für wichtig, diese Tutorials für Entwickler verfügbar zu halten, die noch nach Anleitung beim Entwickeln für diese Geräte suchen. Diese Tutorials werden nicht mit den neuesten Toolsets oder Interaktionen aktualisiert, die für HoloLens 2 verwendet werden. Sie werden gewartet, um weiterhin auf den unterstützten Geräten zu funktionieren. Es wird eine neue Reihe von Tutorials geben, die in Zukunft veröffentlicht werden, die zeigen, wie für HoloLens 2 entwickelt werden kann. Dieser Hinweis wird mit einem Link zu diesen Tutorials aktualisiert, wenn sie veröffentlicht werden.


Endprodukt -start

In diesem Kurs erfahren Sie, wie Sie machine Learning (ML)-Funktionen zu einer Mixed Reality-Anwendung mit Azure Machine Learning Studio (klassisch) hinzufügen.

Azure Machine Learning Studio (klassisch) ist ein Microsoft-Dienst, der Entwicklern eine große Anzahl von Machine Learning-Algorithmen zur Verfügung stellt, die bei der Eingabe, Ausgabe, Vorbereitung und Visualisierung von Daten helfen können. Aus diesen Komponenten ist es dann möglich, ein Predictive Analytics-Experiment zu entwickeln, es zu durchlaufen und es zum Trainieren Ihres Modells zu verwenden. Nach dem Training können Sie Ihr Modell in der Azure-Cloud betriebsbereit machen, sodass es dann neue Daten erfassen kann. Weitere Informationen finden Sie auf der Seite Azure Machine Learning Studio (klassisch).

Nach Abschluss dieses Kurses verfügen Sie über eine immersive Mixed Reality-Headset-Anwendung und haben gelernt, wie Sie Folgendes tun:

  1. Stellen Sie eine Tabelle mit Verkaufsdaten für das Azure Machine Learning Studio-Portal (klassisch) bereit, und entwerfen Sie einen Algorithmus, um zukünftige Verkäufe beliebter Elemente vorherzusagen.
  2. Erstellen Sie ein Unity-Projekt, das Vorhersagedaten vom ML-Dienst empfangen und interpretieren kann.
  3. Zeigen Sie die Prädicationsdaten visuell innerhalb des Unity-Projekts an, indem Sie die beliebtesten Verkaufselemente in einem Regal bereitstellen.

In Ihrer Anwendung liegt es bei Ihnen, wie Sie die Ergebnisse in Ihr Design integrieren. In diesem Kurs erfahren Sie, wie Sie einen Azure-Dienst in Ihr Unity-Projekt integrieren. Es ist Ihre Aufgabe, das Wissen, das Sie aus diesem Kurs gewinnen, zu nutzen, um Ihre Mixed Reality-Anwendung zu verbessern.

Dieser Kurs ist ein eigenständiges Tutorial, das keine anderen Mixed Reality Labs direkt umfasst.

Geräteunterstützung

Kurs HoloLens Immersive Headsets
MR und Azure 307: Maschinelles Lernen ✔️ ✔️

Hinweis

Während sich dieser Kurs hauptsächlich auf Windows Mixed Reality immersiven Headsets (VR) konzentriert, können Sie das, was Sie in diesem Kurs lernen, auch auf Microsoft HoloLens anwenden. Während Sie den Kurs befolgen, werden Ihnen Notizen zu allen Änderungen angezeigt, die Sie möglicherweise zur Unterstützung von HoloLens anwenden müssen. Wenn Sie HoloLens verwenden, können Sie während der Sprachaufnahme ein gewisses Echo bemerken.

Voraussetzungen

Hinweis

Dieses Tutorial richtet sich an Entwickler, die über grundlegende Erfahrungen mit Unity und C# verfügen. Bitte beachten Sie auch, dass die Voraussetzungen und schriftlichen Anweisungen in diesem Dokument das darstellen, was zum Zeitpunkt des Schreibens (Mai 2018) getestet und überprüft wurde. Sie können die neueste Software verwenden, wie im Artikel Installieren der Tools aufgeführt, aber es sollte nicht davon ausgegangen werden, dass die Informationen in diesem Kurs perfekt dem entsprechen, was Sie in neuerer Software finden, als die unten aufgeführten.

Wir empfehlen die folgende Hard- und Software für diesen Kurs:

Vorbereitung

Um Probleme beim Erstellen dieses Projekts zu vermeiden, wird dringend empfohlen, das in diesem Tutorial erwähnte Projekt in einem Stamm- oder Fast-Root-Ordner zu erstellen (lange Ordnerpfade können zur Buildzeit Zu Problemen führen).

Kapitel 1: Einrichtung eines Azure Storage-Kontos

Um die Azure Translator-API verwenden zu können, müssen Sie eine instance des Diensts konfigurieren, die für Ihre Anwendung verfügbar gemacht werden soll.

  1. Melden Sie sich beim Azure-Portal an.

    Hinweis

    Wenn Sie noch nicht über ein Azure-Konto verfügen, müssen Sie ein Azure-Konto erstellen. Wenn Sie dieses Tutorial in einer Unterrichts- oder Labsituation befolgen, bitten Sie Ihren Kursleiter oder einen der Verantwortlichen um Hilfe beim Einrichten Ihres neuen Kontos.

  2. Nachdem Sie angemeldet sind, klicken Sie im linken Menü auf Speicherkonten .

    Screenshot des Microsoft Azure-Fensters, das das Element Speicherkonten im linken Navigationsmenü zeigt.

    Hinweis

    Das Wort Neu wurde in neueren Portalen möglicherweise durch Ressource erstellen ersetzt.

  3. Klicken Sie auf der Registerkarte Speicherkonten auf Hinzufügen.

    Screenshot des Microsoft Azure-Fensters mit dem Bildschirm

  4. Im Bereich Speicherkonto erstellen :

    1. Fügen Sie einen Namen für Ihr Konto ein, und beachten Sie, dass dieses Feld nur Zahlen und Kleinbuchstaben akzeptiert.

    2. Wählen Sie unter Bereitstellungsmodelldie Option Ressourcen-Manager aus.

    3. Wählen Sie unter Kontoartdie Option Speicher (universell v1) aus.

    4. Wählen Sie für Leistung die Option Standard aus.

    5. Wählen Sie unter Replikationdie Option Read-Access-Geo-Redundant Storage (RA-GRS) aus.

    6. Lassen Sie sichere Übertragung erforderlich als Deaktiviert.

    7. Wählen Sie ein Abonnementaus.

    8. Wählen Sie eine Ressourcengruppe aus, oder erstellen Sie eine neue. Eine Ressourcengruppe bietet eine Möglichkeit zum Überwachen, Steuern des Zugriffs, Bereitstellen und Verwalten der Abrechnung für eine Sammlung von Azure-Ressourcen. Es wird empfohlen, alle Azure-Dienste, die einem einzelnen Projekt (z. B. diesen Labs) zugeordnet sind, unter einer gemeinsamen Ressourcengruppe zu halten.

      Wenn Sie mehr über Azure-Ressourcengruppen erfahren möchten, lesen Sie den Artikel Ressourcengruppe.

    9. Bestimmen Sie den Speicherort für Ihre Ressourcengruppe (wenn Sie eine neue Ressourcengruppe erstellen). Der Speicherort befindet sich idealerweise in der Region, in der die Anwendung ausgeführt wird. Einige Azure-Ressourcen sind nur in bestimmten Regionen verfügbar.

  5. Sie müssen auch bestätigen, dass Sie die für diesen Dienst geltenden Geschäftsbedingungen verstanden haben.

    Screenshot des Dialogfelds Speicherkonto erstellen, in dem die Informationen angezeigt werden, die der Benutzer in die erforderlichen Textfelder eingegeben hat.

  6. Nachdem Sie auf Erstellen geklickt haben, müssen Sie warten, bis der Dienst erstellt wird. Dies kann eine Minute dauern.

  7. Eine Benachrichtigung wird im Portal angezeigt, sobald der Dienst instance erstellt wurde.

    Screenshot der Benachrichtigung

Kapitel 2: Azure Machine Learning Studio (klassisch)

Um Azure Machine Learning verwenden zu können, müssen Sie eine instance des Machine Learning-Diensts konfigurieren, um für Ihre Anwendung verfügbar zu machen.

  1. Klicken Sie im Azure-Portal oben links auf Neu , und suchen Sie nach Machine Learning Studio-Arbeitsbereich, und drücken Sie die EINGABETASTE.

    Screenshot des Microsoft Azure-Fensters, das den Machine Learning Studio-Arbeitsbereich im Inhaltsbereich zeigt.

  2. Die neue Seite enthält eine Beschreibung des Machine Learning Studio-Arbeitsbereichsdiensts . Klicken Sie unten links in dieser Eingabeaufforderung auf die Schaltfläche Erstellen , um eine Zuordnung zu diesem Dienst zu erstellen.

  3. Nachdem Sie auf Erstellen geklickt haben, wird ein Bereich angezeigt, in dem Sie einige Details zu Ihrem neuen Machine Learning Studio-Dienst angeben müssen:

    1. Fügen Sie den gewünschten Arbeitsbereichsnamen für diesen Dienst instance ein.

    2. Wählen Sie ein Abonnementaus.

    3. Wählen Sie eine Ressourcengruppe aus, oder erstellen Sie eine neue. Eine Ressourcengruppe bietet eine Möglichkeit zum Überwachen, Steuern des Zugriffs, Bereitstellen und Verwalten der Abrechnung für eine Sammlung von Azure-Ressourcen. Es wird empfohlen, alle Azure-Dienste, die einem einzelnen Projekt (z. B. diesen Labs) zugeordnet sind, unter einer gemeinsamen Ressourcengruppe zu halten.

      Wenn Sie mehr über Azure-Ressourcengruppen erfahren möchten, lesen Sie den Artikel Ressourcengruppe.

    4. Bestimmen Sie den Speicherort für Ihre Ressourcengruppe (wenn Sie eine neue Ressourcengruppe erstellen). Der Speicherort befindet sich idealerweise in der Region, in der die Anwendung ausgeführt wird. Einige Azure-Ressourcen sind nur in bestimmten Regionen verfügbar. Sie sollten dieselbe Ressourcengruppe verwenden, die Sie zum Erstellen von Azure Storage im vorherigen Kapitel verwendet haben.

    5. Klicken Sie im Abschnitt Speicherkonto auf Vorhandene verwenden, klicken Sie dann auf das Dropdownmenü, und klicken Sie dort auf das Speicherkonto , das Sie im letzten Kapitel erstellt haben.

    6. Wählen Sie im Dropdownmenü den entsprechenden Arbeitsbereichstarif aus.

    7. Klicken Sie im Abschnitt Webdienstplan auf Neu erstellen, und fügen Sie dann einen Namen dafür in das Textfeld ein.

    8. Wählen Sie im Abschnitt Webdiensttarif den Tarif Ihrer Wahl aus. Eine Entwicklungstestebene namens DEVTEST Standard sollte kostenlos für Sie verfügbar sein.

    9. Sie müssen auch bestätigen, dass Sie die für diesen Dienst geltenden Geschäftsbedingungen verstanden haben.

    10. Klicken Sie auf Erstellen.

      Screenshot des Dialogfelds

  4. Nachdem Sie auf Erstellen geklickt haben, müssen Sie warten, bis der Dienst erstellt wurde. Dies kann eine Minute dauern.

  5. Eine Benachrichtigung wird im Portal angezeigt, sobald der Dienst instance erstellt wurde.

    Screenshot des Microsoft Azure-Fensters mit einer ungelesenen Benachrichtigung im Navigationsmenü

  6. Klicken Sie auf die Benachrichtigung, um Ihre neue Dienst-instance zu erkunden.

    Screenshot der Benachrichtigung

  7. Klicken Sie in der Benachrichtigung auf die Schaltfläche Zu Ressource wechseln, um Ihre neue Dienst-instance zu erkunden.

  8. Klicken Sie auf der angezeigten Seite im Abschnitt Zusätzliche Links auf Machine Learning Studio starten, wodurch Ihr Browser zum Machine Learning Studio-Portal weitergeleitet wird.

    Screenshot des Microsoft Azure-Fensters mit dem hervorgehobenen Link

  9. Verwenden Sie die Schaltfläche Anmelden oben rechts oder in der Mitte, um sich bei Ihrem Machine Learning Studio (klassisch) anzumelden.

    Screenshot des Machine Learning Studio-Fensters mit der hervorgehobenen Schaltfläche

Kapitel 3: Machine Learning Studio (klassisch): Datasetsetsetup

Eine der Möglichkeiten, wie Machine Learning-Algorithmen funktionieren, besteht darin, vorhandene Daten zu analysieren und dann zu versuchen, zukünftige Ergebnisse basierend auf dem vorhandenen Dataset vorherzusagen. Dies bedeutet im Allgemeinen, dass der Algorithmus bei der Vorhersage zukünftiger Ergebnisse besser ist, je mehr daten vorhanden sind.

Für diesen Kurs wird ihnen eine Beispieltabelle mit dem Namen ProductsTableCSV bereitgestellt, die hier heruntergeladen werden kann.

Wichtig

Die obige .zip Datei enthält sowohl die ProductsTableCSV als auch das UNITY-Paket, das Sie in Kapitel 6 benötigen. Dieses Paket wird auch in diesem Kapitel bereitgestellt, allerdings getrennt von der CSV-Datei.

Dieses Beispieldataset enthält einen Datensatz der am besten verkauften Objekte zu jeder Stunde jedes Tages des Jahres 2017.

Screenshot des Microsoft Excel-Fensters, das im Jahr 2017 zu jeder Stunde einen Beispieldatensatz der am besten verkauften Objekte zeigt.

An Tag 1 von 2017, um 13 Uhr (Stunde 13), waren salz und pfeffer die meistverkauften Artikel.

Diese Beispieltabelle enthält 9998 Einträge.

  1. Kehren Sie zum Portal von Machine Learning Studio (classic) zurück, und fügen Sie diese Tabelle als Dataset für Ihr ML hinzu. Klicken Sie dazu in der unteren linken Ecke des Bildschirms auf die Schaltfläche + Neu .

    Screenshot des klassischen Microsoft Azure Machine Learning Studio-Portals mit der hervorgehobenen Schaltfläche

  2. Ein Abschnitt wird von unten nach oben angezeigt, und in diesem befindet sich der Navigationsbereich auf der linken Seite. Klicken Sie auf Dataset, und klicken Sie dann rechts davon auf Aus lokaler Datei.

    Screenshot des Dialogfelds

  3. Laden Sie das neue Dataset hoch, indem Sie die folgenden Schritte ausführen:

    1. Das Uploadfenster wird angezeigt, in dem Sie Ihre Festplatte nach dem neuen Dataset durchsuchen können.

      Screenshot des Dialogfelds

    2. Lassen Sie nach der Auswahl und wieder im Uploadfenster das Kontrollkästchen deaktiviert.

    3. Geben Sie im Textfeld unten ProductsTableCSV.csv als Namen für das Dataset ein (sollte jedoch automatisch hinzugefügt werden).

    4. Wählen Sie im Dropdownmenü für Typdie Option Generische CSV-Datei mit einer Kopfzeile (.csv) aus.

    5. Drücken Sie das Häkchen unten rechts im Uploadfenster, und Ihr Dataset wird hochgeladen.

Kapitel 4: Das Machine Learning Studio (klassisch): Das Experiment

Bevor Sie Ihr Machine Learning-System erstellen können, müssen Sie ein Experiment erstellen, um Ihre Theorie über Ihre Daten zu überprüfen. Mit den Ergebnissen wissen Sie, ob Sie mehr Daten benötigen oder ob keine Korrelation zwischen den Daten und einem möglichen Ergebnis besteht.

So beginnen Sie mit der Erstellung eines Experiments:

  1. Klicken Sie erneut auf die Schaltfläche + Neu unten links auf der Seite, und klicken Sie dann auf Experiment>Leeres Experiment.

    Screenshot des fensters

  2. Eine neue Seite wird mit einem leeren Experiment angezeigt:

  3. Erweitern Sie im Bereich auf der linken Seite Gespeicherte Datasets>Meine Datasets , und ziehen Sie productsTableCSV auf den Experimentbereich.

    Screenshot des Fensters

  4. Erweitern Sie im Bereich auf der linken Seite Datentransformationsbeispiel>und Teilen. Ziehen Sie dann das Element Daten teilen in den Experimentbereich. Das Element Daten teilen teilt das Dataset in zwei Teile auf. Ein Teil, den Sie zum Trainieren des Machine Learning-Algorithmus verwenden. Der zweite Teil wird verwendet, um die Genauigkeit des generierten Algorithmus zu bewerten.

    Screenshot des Fensters

  5. Bearbeiten Sie im rechten Bereich (während das Element Daten teilen auf der Canvas ausgewählt ist), den Bruch der Zeilen im ersten Ausgabedataset auf 0,7. Dadurch werden die Daten in zwei Teile aufgeteilt. Der erste Teil umfasst 70 % der Daten und der zweite Teil die restlichen 30 %. Um sicherzustellen, dass die Daten nach dem Zufallsprinzip aufgeteilt werden, stellen Sie sicher, dass das Kontrollkästchen Zufällige Aufteilung aktiviert bleibt.

    Screenshot des Bereichs

  6. Ziehen Sie eine Verbindung von der Basis des Elements ProductsTableCSV auf der Canvas an den Anfang des Elements Split Data. Dadurch werden die Elemente verbunden und die Ausgabe des ProductsTableCSV-Datasets (die Daten) an die Eingabe Split Data gesendet.

    Screenshot des Experiment canvas, der eine Verbindung zwischen Products Table C S V punkt c s v und Split Data zeigt.

  7. Erweitern Sie im Bereich Experimente auf der linken Seite Machine Learning>Train. Ziehen Sie das Element Train Model in den Experimentbereich. Ihr Zeichenbereich sollte genauso aussehen wie die unten gezeigte.

    Screenshot des Experiment canvas, der eine Verbindung zwischen Products Table C S V dot c s v und Split Data (Modell trainieren) zeigt.

  8. Ziehen Sie von links unten im Element Daten teilen eine Verbindung nach oben rechts neben dem Element Train Model . Die erste Aufteilung von 70 % aus dem Dataset wird vom Train Model verwendet, um den Algorithmus zu trainieren.

    Screenshot des Experiment canvas, der eine Verbindung zwischen Products Table C S V dot c s v, Split Data und Train Model zeigt.

  9. Wählen Sie im Zeichenbereich das Element Modell trainieren aus, und klicken Sie im Bereich Eigenschaften (rechts im Browserfenster) auf die Schaltfläche Spaltenauswahl starten .

  10. Geben Sie im Textfeld product ein, und drücken Sie dann die EINGABETASTE. Product wird als Spalte zum Trainieren von Vorhersagen festgelegt. Klicken Sie anschließend auf das Häkchen in der unteren rechten Ecke, um das Auswahldialogfeld zu schließen.

    Screenshot des Dialogfelds

  11. Sie werden einen Multiclass Logistic Regression-Algorithmus trainieren, um das am meisten verkaufte Produkt basierend auf der Stunde des Tages und dem Datum vorherzusagen. Es geht über den Rahmen dieses Dokuments hinaus, die Details der verschiedenen Algorithmen zu erläutern, die vom Azure Machine Learning Studio bereitgestellt werden. Weitere Informationen finden Sie jedoch im Spickzettel für Machine Learning-Algorithmen.

  12. Erweitern Sie im Bereich Experimentelemente auf der linken Seite Machine Learning>Modellklassifizierung>initialisieren, und ziehen Sie das Element Multiclass Logistic Regression auf den Experimentbereich.

  13. Verbinden Sie die Ausgabe vom unteren Rand der Multiclass Logistic Regression mit der eingabe oben links des Elements Train Model .

    Screenshot der Experiment canvas mit dem Train Model connected to the Multiclass Logistic Regression and Split Data

  14. Erweitern Sie in der Liste der Experimentelemente im Bereich auf der linken Seite Machine Learning-Bewertung>, und ziehen Sie das Element Score Model auf die Canvas.

  15. Verbinden Sie die Ausgabe vom unteren Rand des Train Model mit der eingabe oben links des Bewertungsmodells.

  16. Verbinden Sie die untere rechte Ausgabe von Split Data mit der Eingabe oben rechts des Score Model-Elements .

    Screenshot des Experiment canvas, der das Bewertungsmodell zeigt, das mit dem Trainieren des Modells und teilen von Daten verbunden ist.

  17. Erweitern Sie in der Liste der Experimentelemente im Bereich auf der linken Seite Machine Learning>Evaluate , und ziehen Sie das Element Evaluate Model (Modell auswerten ) auf die Canvas.

  18. Verbinden Sie die Ausgabe des Bewertungsmodells mit der eingabe oben links des Evaluate Model.

    Screenshot des Experimentbereichs, der das mit dem Bewertungsmodell verbundene Modell auswerten zeigt.

  19. Sie haben Ihr erstes Machine Learning-Experiment erstellt. Sie können das Experiment jetzt speichern und ausführen. Klicken Sie im Menü am unteren Rand der Seite auf die Schaltfläche Speichern , um Ihr Experiment zu speichern, und klicken Sie dann auf Ausführen , um das Experiment zu starten.

    Screenshot des Menüs

  20. Die status des Experiments wird oben rechts im Zeichenbereich angezeigt. Warten Sie einige Augenblicke, bis das Experiment abgeschlossen ist.

    Wenn Sie über ein großes (reales) Dataset verfügen, kann es wahrscheinlich mehrere Stunden dauern, bis das Experiment ausgeführt wird.

    Screenshot des Fensters

  21. Klicken Sie im Zeichenbereich mit der rechten Maustaste auf das Element Modell auswerten , und zeigen Sie im Kontextmenü mit dem Mauszeiger auf Auswertungsergebnisse, und wählen Sie dann Visualisieren aus.

    Screenshot des Rechtsklickmenüs des Elements

  22. Die Auswertungsergebnisse werden mit den vorhergesagten Ergebnissen im Vergleich zu den tatsächlichen Ergebnissen angezeigt. Dabei werden die 30 % des ursprünglichen Datasets, das zuvor aufgeteilt wurde, für die Auswertung des Modells verwendet. Sie können sehen, dass die Ergebnisse nicht großartig sind, im Idealfall haben Sie die höchste Zahl in jeder Zeile, das hervorgehobene Element in den Spalten.

    Screenshot des Diagramms Ergebnisse, das die Ergebnisse des Experiments in einem Diagramm von Feldern mit Prozentwerten zeigt.

  23. Schließen Sie die Ergebnisse.

  24. Um Ihr neu trainiertes Machine Learning-Modell zu verwenden, müssen Sie es als Webdienst verfügbar machen. Klicken Sie dazu im Menü unten auf der Seite auf das Menüelement Webdienst einrichten , und klicken Sie dann auf Predictive Web Service.

    Screenshot des Menüs

  25. Eine neue Registerkarte wird erstellt, und das Trainmodell wird zusammengeführt, um den neuen Webdienst zu erstellen.

  26. Klicken Sie im Menü unten auf der Seite auf Speichern und dann auf Ausführen. Die status wird in der oberen rechten Ecke des Experimentbereichs aktualisiert.

    Screenshot des Menüs

  27. Nach Abschluss der Ausführung wird unten auf der Seite die Schaltfläche Webdienst bereitstellen angezeigt. Sie können den Webdienst bereitstellen. Klicken Sie im Menü unten auf der Seite auf Webdienst bereitstellen (klassisch).

    Screenshot des Menüs

    Ihr Browser fordert möglicherweise auf, ein Popup zuzulassen, das Sie zulassen sollten, obwohl Sie möglicherweise erneut auf Webdienst bereitstellen drücken müssen, wenn die Bereitstellungsseite nicht angezeigt wird.

  28. Nachdem das Experiment erstellt wurde, werden Sie zu einer Dashboardseite weitergeleitet, auf der Ihr API-Schlüssel angezeigt wird. Kopieren Sie es für den Moment in einen Editor, und Sie benötigen es sehr bald in Ihrem Code. Nachdem Sie Ihren API-Schlüssel notiert haben, klicken Sie im Abschnitt Standardendpunkt unter dem Schlüssel auf die Schaltfläche REQUEST/RESPONSE.

    Screenshot des fensters Microsoft Azure Machine Learning Studio, das die A P I-Taste und den hervorgehobenen Link Slash Response anfordern zeigt.

    Hinweis

    Wenn Sie auf dieser Seite auf Testen klicken, können Sie Eingabedaten eingeben und die Ausgabe anzeigen. Geben Sie den Tag und die Stunde ein. Lassen Sie den Produkteintrag leer. Klicken Sie dann auf die Schaltfläche Bestätigen . Die Ausgabe am unteren Rand der Seite zeigt den JSON-Code an, der die Wahrscheinlichkeit darstellt, dass jedes Produkt die Wahl hat.

  29. Eine neue Webseite wird geöffnet, auf der die Anweisungen und einige Beispiele zur Anforderungsstruktur angezeigt werden, die für Machine Learning Studio (klassisch) erforderlich ist. Kopieren Sie den auf dieser Seite angezeigten Anforderungs-URI in Ihren Editor.

    Screenshot der Dokumentationsseite

Sie haben jetzt ein Machine Learning-System erstellt, das das produkt bereitstellt, das am wahrscheinlichsten verkauft werden kann, basierend auf historischen Kaufdaten, die mit der Tageszeit und dem Tag des Jahres korreliert sind.

Zum Aufrufen des Webdiensts benötigen Sie die URL für den Dienstendpunkt und einen API-Schlüssel für den Dienst. Klicken Sie im oberen Menü auf die Registerkarte Verbrauch .

Auf der Seite Verbrauchsinformationen werden die Informationen angezeigt, die Sie benötigen, um den Webdienst über Ihren Code aufzurufen. Erstellen Sie eine Kopie des Primärschlüssels und der Anforderungsantwort-URL . Diese benötigen Sie im nächsten Kapitel.

Kapitel 5: Einrichten des Unity-Projekts

Richten Sie Ihr Mixed Reality Immersive Headset ein und testen Sie es.

Hinweis

Für diesen Kurs benötigen Sie keine Bewegungscontroller. Wenn Sie Unterstützung beim Einrichten des immersiven Headsets benötigen, klicken Sie hier.

  1. Öffnen Sie Unity , und erstellen Sie ein neues Unity-Projekt namens MR_MachineLearning. Stellen Sie sicher, dass der Projekttyp auf 3D festgelegt ist.

  2. Wenn Unity geöffnet ist, lohnt es sich, zu überprüfen, ob der Standardskript-Editor auf Visual Studio festgelegt ist. Navigieren Sie zu Einstellungen bearbeiten>, und navigieren Sie dann im neuen Fenster zu Externe Tools. Ändern Sie den externen Skript-Editor in Visual Studio 2017. Schließen Sie das Fenster Einstellungen.

  3. Wechseln Sie als Nächstes zuDateierstellungseinstellungen>, und wechseln Sie die Plattform auf Universelle Windows-Plattform, indem Sie auf die Schaltfläche Plattform wechseln klicken.

  4. Stellen Sie außerdem folgendes sicher:

    1. Zielgerät ist auf Beliebiges Gerät festgelegt.

      Legen Sie für die Microsoft HoloLens Zielgerät auf HoloLens fest.

    2. Buildtyp ist auf D3D festgelegt.

    3. SDK ist auf Zuletzt installiert festgelegt.

    4. Visual Studio Version ist auf Zuletzt installiert festgelegt.

    5. Build and Run ist auf Lokaler Computer festgelegt.

    6. Machen Sie sich jetzt keine Gedanken über die Einrichtung von Szenen , da diese später bereitgestellt werden.

    7. Die restlichen Einstellungen sollten vorerst als Standard beibehalten werden.

      Screenshot des Dialogfelds

  5. Klicken Sie im Fenster Buildeinstellungen auf die Schaltfläche Playereinstellungen . Dadurch wird der zugehörige Bereich in dem Bereich geöffnet, in dem sich der Inspektor befindet.

  6. In diesem Bereich müssen einige Einstellungen überprüft werden:

    1. Auf der Registerkarte Andere Einstellungen :

      1. Die Skriptlaufzeitversion sollte experimentell (.NET 4.6 gleichwertig) sein.

      2. Skript-Back-End sollte .NET sein

      3. API-Kompatibilitätsgrad sollte .NET 4.6 sein

        Screenshot der Registerkarte

    2. Überprüfen Sie auf der Registerkarte Veröffentlichungseinstellungen unter Funktionen Folgendes:

      • InternetClient

        Screenshot der Registerkarte Veröffentlichungseinstellungen, die zeigt, dass die Internetclientfunktion unter Funktionen aktiviert ist.

    3. Wählen Sie weiter unten im Bereich unter XR-Einstellungen (unter Veröffentlichungseinstellungen) das Kontrollkästchen Virtual Reality Supported (Virtual Reality Supported) an, vergewissern Sie sich, dass das Windows Mixed Reality SDK hinzugefügt wurde.

      Screenshot der Registerkarte

  7. Zurück in BuildeinstellungenUnity C#- Projekte ist nicht mehr abgeblendet. aktivieren Sie das Kontrollkästchen neben diesem.

  8. Schließen Sie das Fenster „Build Settings“ (Buildeinstellungen).

  9. Speichern Sie Ihr Projekt (FILE > SAVE PROJECT).

Kapitel 6: Importieren des MLProducts Unity-Pakets

Für diesen Kurs müssen Sie ein Unity-Ressourcenpaket namens Azure-MR-307.unitypackage herunterladen. Dieses Paket wird mit einer Szene mit allen Objekten in diesem vordefinierten Paket bereitgestellt, sodass Sie sich darauf konzentrieren können, dass alles funktioniert. Das ShelfKeeper-Skript wird bereitgestellt, enthält jedoch nur die öffentlichen Variablen für die Struktur des Szenensetups. Sie müssen alle anderen Abschnitte ausführen.

So importieren Sie dieses Paket:

  1. Klicken Sie mit dem Unity-Dashboard vor Ihnen im Menü oben auf dem Bildschirm auf Ressourcen, und klicken Sie dann auf Paket importieren, Benutzerdefiniertes Paket.

    Screenshot des Unity-Dashboards mit den hervorgehobenen Menüelementen

  2. Wählen Sie mit der Dateiauswahl das Paket Azure-MR-307.unitypackage aus, und klicken Sie auf Öffnen.

  3. Eine Liste der Komponenten für dieses Asset wird Angezeigt. Bestätigen Sie den Import, indem Sie auf Importieren klicken.

    Screenshot des Dialogfelds

  4. Sobald der Import abgeschlossen ist, werden Sie feststellen, dass einige neue Ordner in Ihrem Unity-Projektbereich angezeigt wurden. Dies sind die 3D-Modelle und die entsprechenden Materialien, die Teil der vorgefertigten Szene sind, an der Sie arbeiten werden. Sie schreiben den Großteil des Codes in diesem Kurs.

    Screenshot des Unity-Projektbereichs mit den neu importierten Ordnern im Ordner Assets

  5. Klicken Sie im Ordner Projektbereich auf den Ordner Szenen , und doppelklicken Sie auf die Szene darin ( MR_MachineLearningScene genannt). Die Szene wird geöffnet (siehe Abbildung unten). Wenn die roten Diamanten fehlen, klicken Sie einfach oben rechts im Spielbereich auf die Schaltfläche Gizmos.

    Screenshot des Fensters

Kapitel 7: Überprüfen der DLLs in Unity

Um die Verwendung von JSON-Bibliotheken (die zum Serialisieren und Deserialisieren verwendet werden) zu nutzen, wurde eine Newtonsoft-DLL mit dem von Ihnen bereitgestellten Paket implementiert. Die Bibliothek sollte über die richtige Konfiguration verfügen, es lohnt sich jedoch zu überprüfen (insbesondere, wenn Probleme mit nicht funktionierendem Code auftreten).

Gehen Sie folgendermaßen vor:

  • Klicken Sie mit der linken Maustaste auf die Newtonsoft-Datei im Ordner Plugins, und sehen Sie sich den Bereich Inspector an. Stellen Sie sicher , dass "Beliebige Plattform " aktiviert ist. Wechseln Sie zur Registerkarte UWP , und stellen Sie sicher, dass Nicht verarbeiten aktiviert ist.

    Importieren der DLLs in Unity

Kapitel 8: Erstellen der ShelfKeeper-Klasse

Die ShelfKeeper-Klasse hostet Methoden, die die Benutzeroberfläche und die in der Szene erzeugten Produkte steuern.

Als Teil des importierten Pakets haben Sie diese Klasse erhalten, obwohl sie unvollständig ist. Es ist jetzt an der Zeit, diese Klasse abzuschließen:

  1. Doppelklicken Sie im Ordner Skripts auf das Skript ShelfKeeper, um es mit Visual Studio 2017 zu öffnen.

  2. Ersetzen Sie den gesamten im Skript vorhandenen Code durch den folgenden Code, der die Uhrzeit und das Datum festlegt und über eine Methode zum Anzeigen eines Produkts verfügt.

    using UnityEngine;
    
    public class ShelfKeeper : MonoBehaviour
    {
        /// <summary>
        /// Provides this class Singleton-like behavior
        /// </summary>
        public static ShelfKeeper instance;
    
        /// <summary>
        /// Unity Inspector accessible Reference to the Text Mesh object needed for data
        /// </summary>
        public TextMesh dateText;
    
        /// <summary>
        /// Unity Inspector accessible Reference to the Text Mesh object needed for time
        /// </summary>
        public TextMesh timeText;
    
        /// <summary>
        /// Provides references to the spawn locations for the products prefabs
        /// </summary>
        public Transform[] spawnPoint;
    
        private void Awake()
        {
            instance = this;
        }
    
        /// <summary>
        /// Set the text of the date in the scene
        /// </summary>
        public void SetDate(string day, string month)
        {
            dateText.text = day + " " + month;
        }
    
        /// <summary>
        /// Set the text of the time in the scene
        /// </summary>
        public void SetTime(string hour)
        {
            timeText.text = hour + ":00";
        }
    
        /// <summary>
        /// Spawn a product on the shelf by providing the name and selling grade
        /// </summary>
        /// <param name="name"></param>
        /// <param name="sellingGrade">0 being the best seller</param>
        public void SpawnProduct(string name, int sellingGrade)
        {
            Instantiate(Resources.Load(name),
                spawnPoint[sellingGrade].transform.position, spawnPoint[sellingGrade].transform.rotation);
        }
    }
    
  3. Speichern Sie ihre Änderungen in Visual Studio , bevor Sie zu Unity zurückkehren.

  4. Überprüfen Sie im Unity-Editor, ob die ShelfKeeper-Klasse wie folgt aussieht:

    Screenshot der Shelf Keeper-Klasse, die zeigt, dass die Referenzziele auf Datumstextgitter und Zeittextgitter festgelegt sind.

    Wichtig

    Wenn Ihr Skript nicht über die Referenzziele verfügt (d. h. Datum (Textgitter)), ziehen Sie einfach die entsprechenden Objekte aus dem Hierarchiebereich in die Zielfelder. Erläuterungen finden Sie bei Bedarf weiter unten:

    1. Öffnen Sie das Spawn Point-Array im ShelfKeeper-Komponentenskript , indem Sie mit der linken Maustaste darauf klicken. Es wird ein Unterabschnitt namens Size angezeigt, der die Größe des Arrays angibt. Geben Sie 3 in das Textfeld neben Größe ein, und drücken Sie die EINGABETASTE, und darunter werden drei Slots erstellt.

    2. Erweitern Sie innerhalb der Hierarchie das Objekt Zeitanzeige (indem Sie mit der linken Maustaste auf den Pfeil daneben klicken). Klicken Sie als Nächstes in der Hierarchie auf die Hauptkamera, damit der Inspektor seine Informationen anzeigt.

    3. Wählen Sie im Hierarchiebereich die Hauptkamera aus. Ziehen Sie die Date - und Time-Objekte aus dem Hierarchiebereich in die Datumstext - und Zeittextslots im Inspektor der Hauptkamera in der ShelfKeeper-Komponente .

    4. Ziehen Sie die Spawnpunkte aus dem Hierarchiebereich (unter dem Shelf-Objekt ) auf die 3Element-Referenzziele unter dem Array Spawn-Punkt , wie in der Abbildung gezeigt.

      Screenshot des Hierarchiebereichs, der zeigt, dass sich die Menüelemente Datum, Uhrzeit und die drei Spawn-Punkte in der Shelf Keeper-Klasse befinden.

Kapitel 9: Erstellen der ProductPrediction-Klasse

Die nächste Klasse, die Sie erstellen, ist die ProductPrediction-Klasse .

Diese Klasse ist verantwortlich für:

  • Abfragen des Machine Learning Service-instance, wobei das aktuelle Datum und die aktuelle Uhrzeit angegeben werden.

  • Deserialisieren der JSON-Antwort in nutzbare Daten.

  • Interpretieren der Daten, Abrufen der 3 empfohlenen Produkte.

  • Rufen Sie die Methoden der ShelfKeeper-Klasse auf, um die Daten in der Scene anzuzeigen.

So erstellen Sie diese Klasse:

  1. Wechseln Sie im Projektbereich zum Ordner Skripts.

  2. Klicken Sie mit der rechten Maustaste in den OrdnerC#-Skript erstellen>. Rufen Sie das Skript ProductPrediction auf.

  3. Doppelklicken Sie auf das neue ProductPrediction-Skript , um es mit Visual Studio 2017 zu öffnen.

  4. Wenn das Dialogfeld Dateiänderung erkannt angezeigt wird, klicken Sie auf *Projektmappe neu laden.

  5. Fügen Sie die folgenden Namespaces am Anfang der ProductPrediction-Klasse hinzu:

    using System;
    using System.Collections.Generic;
    using UnityEngine;
    using System.Linq;
    using Newtonsoft.Json;
    using UnityEngine.Networking;
    using System.Runtime.Serialization;
    using System.Collections;
    
  6. Fügen Sie in die ProductPrediction-Klasse die beiden folgenden Objekte ein, die aus einer Reihe geschachtelter Klassen bestehen. Diese Klassen werden verwendet, um den JSON-Code für den Machine Learning Service zu serialisieren und zu deserialisieren.

        /// <summary>
        /// This object represents the Prediction request
        /// It host the day of the year and hour of the day
        /// The product must be left blank when serialising
        /// </summary>
        public class RootObject
        {
            public Inputs Inputs { get; set; }
        }
    
        public class Inputs
        {
            public Input1 input1 { get; set; }
        }
    
        public class Input1
        {
            public List<string> ColumnNames { get; set; }
            public List<List<string>> Values { get; set; }
        }
    
        /// <summary>
        /// This object containing the deserialised Prediction result
        /// It host the list of the products
        /// and the likelihood of them being sold at current date and time
        /// </summary>
        public class Prediction
        {
            public Results Results { get; set; }
        }
    
        public class Results
        {
            public Output1 output1;
        }
    
        public class Output1
        {
            public string type;
            public Value value;
        }
    
        public class Value
        {
            public List<string> ColumnNames { get; set; }
            public List<List<string>> Values { get; set; }
        }
    
  7. Fügen Sie dann die folgenden Variablen über dem vorherigen Code hinzu (sodass sich der JSON-bezogene Code am unteren Rand des Skripts, unter allen anderen Code und nicht im Weg befindet):

        /// <summary>
        /// The 'Primary Key' from your Machine Learning Portal
        /// </summary>
        private string authKey = "-- Insert your service authentication key here --";
    
        /// <summary>
        /// The 'Request-Response' Service Endpoint from your Machine Learning Portal
        /// </summary>
        private string serviceEndpoint = "-- Insert your service endpoint here --";
    
        /// <summary>
        /// The Hour as set in Windows
        /// </summary>
        private string thisHour;
    
        /// <summary>
        /// The Day, as set in Windows
        /// </summary>
        private string thisDay;
    
        /// <summary>
        /// The Month, as set in Windows
        /// </summary>
        private string thisMonth;
    
        /// <summary>
        /// The Numeric Day from current Date Conversion
        /// </summary>
        private string dayOfTheYear;
    
        /// <summary>
        /// Dictionary for holding the first (or default) provided prediction 
        /// from the Machine Learning Experiment
        /// </summary>    
        private Dictionary<string, string> predictionDictionary;
    
        /// <summary>
        /// List for holding product prediction with name and scores
        /// </summary>
        private List<KeyValuePair<string, double>> keyValueList;
    

    Wichtig

    Fügen Sie hier unbedingt den Primärschlüssel und den Anforderungsantwortendpunkt aus dem Machine Learning-Portal in die Variablen ein. Die folgenden Bilder zeigen, wo Sie den Schlüssel und den Endpunkt genommen hätten.

    Screenshot des Microsoft Azure Machine Learning Studio, der den Link Slash Response anfordern unterhalb der Hilfeseite

    Screenshot der Dokumentationsseite

  8. Fügen Sie diesen Code in die Start()- Methode ein. Die Start()- Methode wird aufgerufen, wenn die -Klasse initialisiert:

        void Start()
        {
            // Call to get the current date and time as set in Windows
            GetTodayDateAndTime();
    
            // Call to set the HOUR in the UI
            ShelfKeeper.instance.SetTime(thisHour);
    
            // Call to set the DATE in the UI
            ShelfKeeper.instance.SetDate(thisDay, thisMonth);
    
            // Run the method to Get Predication from Azure Machine Learning
            StartCoroutine(GetPrediction(thisHour, dayOfTheYear));
        }
    
  9. Im Folgenden finden Sie die Methode, die Datum und Uhrzeit von Windows erfasst und in ein Format konvertiert, das unser Machine Learning-Experiment verwenden kann, um mit den in der Tabelle gespeicherten Daten zu vergleichen.

        /// <summary>
        /// Get current date and hour
        /// </summary>
        private void GetTodayDateAndTime()
        {
            // Get today date and time
            DateTime todayDate = DateTime.Now;
    
            // Extrapolate the HOUR
            thisHour = todayDate.Hour.ToString();
    
            // Extrapolate the DATE
            thisDay = todayDate.Day.ToString();
            thisMonth = todayDate.ToString("MMM");
    
            // Extrapolate the day of the year
            dayOfTheYear = todayDate.DayOfYear.ToString();
        }
    
  10. Sie können die Update()-Methode löschen, da diese Klasse sie nicht verwendet.

  11. Fügen Sie die folgende Methode hinzu, die das aktuelle Datum und die aktuelle Uhrzeit an den Machine Learning-Endpunkt kommuniziert und eine Antwort im JSON-Format empfängt.

        private IEnumerator GetPrediction(string timeOfDay, string dayOfYear)
        {
            // Populate the request object 
            // Using current day of the year and hour of the day
            RootObject ro = new RootObject
            {
                Inputs = new Inputs
                {
                    input1 = new Input1
                    {
                        ColumnNames = new List<string>
                        {
                            "day",
                            "hour",
                        "product"
                        },
                        Values = new List<List<string>>()
                    }
                }
            };
    
            List<string> l = new List<string>
            {
                dayOfYear,
                timeOfDay,
                ""
            };
    
            ro.Inputs.input1.Values.Add(l);
    
            Debug.LogFormat("Score request built");
    
            // Serialize the request
            string json = JsonConvert.SerializeObject(ro);
    
            using (UnityWebRequest www = UnityWebRequest.Post(serviceEndpoint, "POST"))
            {
                byte[] jsonToSend = new System.Text.UTF8Encoding().GetBytes(json);
                www.uploadHandler = new UploadHandlerRaw(jsonToSend);
    
                www.downloadHandler = new DownloadHandlerBuffer();
                www.SetRequestHeader("Authorization", "Bearer " + authKey);
                www.SetRequestHeader("Content-Type", "application/json");
                www.SetRequestHeader("Accept", "application/json");
    
                yield return www.SendWebRequest();
                string response = www.downloadHandler.text;
    
                // Deserialize the response
                DataContractSerializer serializer;
                serializer = new DataContractSerializer(typeof(string));
                DeserialiseJsonResponse(response);
            }
        }
    
  12. Fügen Sie die folgende Methode hinzu, die für das Deserialisieren der JSON-Antwort und die Kommunikation des Ergebnisses der Deserialisierung an die ShelfKeeper-Klasse verantwortlich ist. Dieses Ergebnis sind die Namen der drei Elemente, die zum aktuellen Datum und zur aktuellen Zeit am meisten verkauft werden. Fügen Sie den folgenden Code unter der vorherigen Methode in die ProductPrediction-Klasse ein.

        /// <summary>
        /// Deserialize the response received from the Machine Learning portal
        /// </summary>
        public void DeserialiseJsonResponse(string jsonResponse)
        {
            // Deserialize JSON
            Prediction prediction = JsonConvert.DeserializeObject<Prediction>(jsonResponse);
            predictionDictionary = new Dictionary<string, string>();
    
            for (int i = 0; i < prediction.Results.output1.value.ColumnNames.Count; i++)
            {
                if (prediction.Results.output1.value.Values[0][i] != null)
                {
                    predictionDictionary.Add(prediction.Results.output1.value.ColumnNames[i], prediction.Results.output1.value.Values[0][i]);
                }
            }
    
            keyValueList = new List<KeyValuePair<string, double>>();
    
            // Strip all non-results, by adding only items of interest to the scoreList
            for (int i = 0; i < predictionDictionary.Count; i++)
            {
                KeyValuePair<string, string> pair = predictionDictionary.ElementAt(i);
                if (pair.Key.StartsWith("Scored Probabilities"))
                {
                    // Parse string as double then simplify the string key so to only have the item name
                    double scorefloat = 0f;
                    double.TryParse(pair.Value, out scorefloat);
                    string simplifiedName =
                        pair.Key.Replace("\"", "").Replace("Scored Probabilities for Class", "").Trim();
                    keyValueList.Add(new KeyValuePair<string, double>(simplifiedName, scorefloat));
                }
            }
    
            // Sort Predictions (results will be lowest to highest)
            keyValueList.Sort((x, y) => y.Value.CompareTo(x.Value));
    
            // Spawn the top three items, from the keyValueList, which we have sorted
            for (int i = 0; i < 3; i++)
            {
                ShelfKeeper.instance.SpawnProduct(keyValueList[i].Key, i);
            }
    
            // Clear lists in case of reuse
            keyValueList.Clear();
            predictionDictionary.Clear();
        }
    
  13. Speichern Sie Visual Studio , und wechseln Sie zurück zu Unity.

  14. Ziehen Sie das ProductPrediction-Klassenskript aus dem Ordner Skript auf das Hauptkameraobjekt .

  15. Speichern Sie Ihre Szene und Ihr Projekt Datei>speichern Szene/Datei>speichern Projekt.

Kapitel 10: Erstellen der UWP-Lösung

Es ist jetzt an der Zeit, Ihr Projekt als UWP-Lösung zu erstellen, damit es als eigenständige Anwendung ausgeführt werden kann.

So erstellen Sie Folgendes:

  1. Speichern Sie die aktuelle Szene, indem Sie auf Datei>speichern Szenen klicken.

  2. Wechseln Sie zuDateibuildeinstellungen.>

  3. Aktivieren Sie das Kontrollkästchen Unity C#-Projekte (dies ist wichtig, da Sie die Klassen nach Abschluss des Buildvorgangs bearbeiten können).

  4. Klicken Sie auf Offene Szenen hinzufügen,

  5. Klicken Sie auf Erstellen.

    Screenshot des Dialogfelds

  6. Sie werden aufgefordert, den Ordner auszuwählen, in dem Sie die Projektmappe erstellen möchten.

  7. Erstellen Sie einen BUILDS-Ordner , und erstellen Sie in diesem Ordner einen anderen Ordner mit einem entsprechenden Namen Ihrer Wahl.

  8. Klicken Sie auf Ihren neuen Ordner, und klicken Sie dann auf Ordner auswählen, um mit dem Build an diesem Speicherort zu beginnen.

    Screenshot des fensters Explorer, das den hervorgehobenen Ordner Builds zeigt.

    Screenshot des Explorer Fensters, das den Inhalt des Ordners Builds und die hervorgehobene Schaltfläche Ordner auswählen zeigt.

  9. Sobald Unity das Erstellen abgeschlossen hat (es kann einige Zeit dauern), öffnet es ein Explorer Fenster am Speicherort Ihres Builds (überprüfen Sie Ihre Taskleiste, da es möglicherweise nicht immer über Ihren Fenstern angezeigt wird, Sie aber über das Hinzufügen eines neuen Fensters benachrichtigt).

Kapitel 11: Bereitstellen Ihrer Anwendung

So stellen Sie Ihre Anwendung bereit:

  1. Navigieren Sie zu Ihrem neuen Unity-Build (dem Ordner App ), und öffnen Sie die Projektmappendatei mit Visual Studio.

  2. Wenn Visual Studio geöffnet ist, müssen Sie NuGet-Pakete wiederherstellen. Klicken Sie dazu mit der rechten Maustaste auf Ihre MachineLearningLab_Build Projektmappe, über die Projektmappen-Explorer (rechts neben Visual Studio), und klicken Sie dann auf NuGet-Pakete wiederherstellen:

    Screenshot des Visual Studio-Fensters mit hervorgehobenem Menüelement

  3. Wählen Sie in der Projektmappenkonfiguration debuggen aus.

  4. Wählen Sie auf der Lösungsplattform die Option x86, Lokaler Computer aus.

    Für die Microsoft HoloLens ist es möglicherweise einfacher, dies auf Remotecomputer festzulegen, sodass Sie nicht an Ihren Computer angebunden werden. Sie müssen jedoch auch die folgenden Schritte ausführen:

    • Kennen Sie die IP-Adresse Ihrer HoloLens, die Sie im Einstellungsnetzwerk > & Internet > Wi-Fi > Erweiterten Optionen finden können. IPv4 ist die Adresse, die Sie verwenden sollten.
    • Stellen Sie sicher , dass der Entwicklermodusaktiviert ist. finden Sie unter Einstellungen > Update & Sicherheit > für Entwickler.

    Screenshot des Microsoft Visual Studio-Menüs, das zeigt, dass lokaler Computer in der Projektmappenplattform ausgewählt ist.

  5. Wechseln Sie zum Menü Erstellen , und klicken Sie auf Lösung bereitstellen , um die Anwendung auf Ihren PC querzuladen.

  6. Ihre App sollte nun in der Liste der installierten Apps angezeigt werden, die zum Starten bereit sind.

Wenn Sie die Mixed Reality-Anwendung ausführen, sehen Sie die Bank, die in Ihrer Unity-Szene eingerichtet wurde, und nach der Initialisierung werden die Daten abgerufen, die Sie in Azure eingerichtet haben. Die Daten werden in Ihrer Anwendung deserialisiert, und die drei besten Ergebnisse für Ihr aktuelles Datum und Ihre aktuelle Uhrzeit werden visuell als drei Modelle auf der Bank bereitgestellt.

Ihre fertige Machine Learning-Anwendung

Herzlichen Glückwunsch! Sie haben eine Mixed Reality-App erstellt, die Azure Machine Learning nutzt, um Datenvorhersagen zu treffen und in Ihrer Szene anzuzeigen.

Screenshot des Microsoft Visual Studio-Fensters, das ein Regal mit drei Objekten und eine Karte mit dem Text 15 Uhr 23 Februar zeigt.

Übung

Übung 1

Experimentieren Sie mit der Sortierreihenfolge Ihrer Anwendung, und lassen Sie die drei unteren Vorhersagen im Regal erscheinen, da diese Daten möglicherweise auch nützlich wären.

Übung 2

Füllen Sie mithilfe von Azure Tables eine neue Tabelle mit Wetterinformationen auf, und erstellen Sie mithilfe der Daten ein neues Experiment.