HoloLens (1. Generation) und Azure 307: Maschinelles Lernen


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 Lernprogrammen geben, die zukünftig veröffentlicht werden, die zeigen, wie sie für HoloLens 2 entwickelt werden. Diese Benachrichtigung wird mit einem Link zu diesen Lernprogrammen aktualisiert, wenn sie veröffentlicht werden.


final product -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 Maschinellen Lernalgorithmen bietet, die mit Dateneingaben, Ausgabe, Vorbereitung und Visualisierung helfen können. Aus diesen Komponenten ist es dann möglich, ein Predictive Analytics-Experiment zu entwickeln, es zu durchlaufen und es zu verwenden, um Ihr Modell zu trainieren. Nach der Schulung können Sie Ihr Modell in der Azure-Cloud funktionsfähig machen, damit es dann neue Daten bewertet. Weitere Informationen finden Sie auf der Seite Azure Machine Learning Studio (klassisch).

Nachdem Sie diesen Kurs abgeschlossen haben, verfügen Sie über eine immersive Mixed Reality-Headset-Anwendung und haben erfahren, wie Sie folgendes tun:

  1. Stellen Sie eine Tabelle mit Verkaufsdaten für das Azure Machine Learning Studio-Portal (klassische) bereit, und entwerfen Sie einen Algorithmus, um zukünftige Verkäufe beliebter Artikel vorherzusagen.
  2. Erstellen Sie eine Unity-Project, die Vorhersagedaten aus dem ML Dienst empfangen und interpretieren kann.
  3. Zeigen Sie die Vorabdaten visuell innerhalb der Unity-Project an, indem Sie die beliebtesten Verkaufsartikel auf einem Regal bereitstellen.

In Ihrer Anwendung liegt es ihnen bei der Integration der Ergebnisse in Ihr Design. Dieser Kurs soll Ihnen vermitteln, wie Sie einen Azure-Dienst in Ihre Unity-Project integrieren. Es ist Ihre Aufgabe, das Wissen zu nutzen, das Sie aus diesem Kurs gewinnen, um Ihre Mixed Reality-Anwendung zu verbessern.

Dieser Kurs ist ein eigenständiges Lernprogramm, das keine anderen Mixed Reality Labs 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 auch das, was Sie in diesem Kurs lernen, auf Microsoft HoloLens anwenden. Während Sie den Kurs folgen, werden Notizen zu allen Änderungen angezeigt, die Sie möglicherweise zum Unterstützen HoloLens verwenden müssen. Wenn Sie HoloLens verwenden, bemerken Sie möglicherweise während der Sprachaufnahme ein Echo.

Voraussetzungen

Hinweis

Dieses Lernprogramm wurde für Entwickler entwickelt, die grundlegende Erfahrungen mit Unity und C# haben. Bitte beachten Sie auch, dass die Voraussetzungen und schriftlichen Anweisungen in diesem Dokument darstellen, was zum Zeitpunkt des Schreibens getestet und überprüft wurde (Mai 2018). Sie sind kostenlos, die neueste Software zu verwenden, wie im Artikel zur Installation der Tools aufgeführt, aber es sollte nicht angenommen werden, dass die Informationen in diesem Kurs perfekt mit dem übereinstimmen, was Sie in neuerer Software finden werden als die unten aufgeführten.

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

Vorbereitung

Um probleme beim Erstellen dieses Projekts zu vermeiden, wird dringend empfohlen, dass Sie das in diesem Lernprogramm erwähnte Projekt in einem Stamm- oder Nahstammordner erstellen (lange Ordnerpfade können probleme beim Buildzeit verursachen).

Kapitel 1 – Azure Storage Kontoeinrichtung

Um die Azure Translator-API zu verwenden, müssen Sie eine Instanz 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 kein Azure-Konto haben, müssen Sie ein Konto erstellen. Wenn Sie diesem Lernprogramm in einer Unterrichts- oder Laborsituation folgen, bitten Sie Ihren Kursleiter oder einen der Proktoren, hilfe beim Einrichten Ihres neuen Kontos.

  2. Sobald Sie angemeldet sind, klicken Sie im linken Menü auf Storage Konten.

    Screenshot of the Microsoft Azure window, which shows the Storage Accounts item in the left navigation menu.

    Hinweis

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

  3. Klicken Sie auf der Registerkarte Storage Konten auf "Hinzufügen".

    Screenshot of the Microsoft Azure window, which shows the Storage accounts screen and the highlighted Add button.

  4. Im Bereich "Konto erstellen" Storage:

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

    2. Wählen Sie für das Bereitstellungsmodellden Ressourcen-Manager aus.

    3. Wählen Sie für "Kontotyp" Storage (allgemeine Version v1) aus.

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

    5. Wählen Sie für replikationsbasierten Read-access-geo-redundant storage (RA-GRS) aus.

    6. Lassen Sie die sichere Übertragung als deaktiviert erforderlich.

    7. Wählen Sie ein Abonnementaus.

    8. Wählen Sie eine Ressourcengruppe aus, oder erstellen Sie eine neue. Eine Ressourcengruppe bietet eine Möglichkeit, die Abrechnung für eine Sammlung von Azure-Ressourcen zu überwachen, zu steuern, den Zugriff zu steuern, bereitzustellen und zu verwalten. Es wird empfohlen, alle Azure-Dienste, die einem einzelnen Projekt zugeordnet sind (z. B. diese Labs), unter einer gemeinsamen Ressourcengruppe zu halten.

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

    9. Bestimmen Sie den Speicherort für Ihre Ressourcengruppe (wenn Sie eine neue Ressourcengruppe erstellen). Der Standort wäre 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 auf diesen Dienst angewendeten Geschäftsbedingungen verstanden haben.

    Screenshot of the Create storage account dialog, which shows the information that the user filled into the required text fields.

  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 die Dienstinstanz erstellt wurde.

    Screenshot of the Deployment succeeded notification, which informs the user that the deployment to the resource group was successful.

Kapitel 2 – The Azure Machine Learning Studio (classic)

Um die Azure Machine Learning zu verwenden, müssen Sie eine Instanz des Machine Learning-Diensts konfigurieren, der ihrer Anwendung zur Verfügung gestellt wird.

  1. Klicken Sie im Azure-Portal in der oberen linken Ecke auf "Neu", und suchen Sie nach Machine Learning Studio-Arbeitsbereich, drücken Sie die EINGABETASTE.

    Screenshot of the Microsoft Azure window, which shows the Machine Learning Studio Workspace in the content pane.

  2. Die neue Seite enthält eine Beschreibung des Machine Learning Studio Workspace-Diensts. Klicken Sie unten links neben 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 Ihren gewünschten Arbeitsbereichsnamen für diese Dienstinstanz 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, die Abrechnung für eine Sammlung von Azure-Ressourcen zu überwachen, zu steuern, den Zugriff zu steuern, bereitzustellen und zu verwalten. Es wird empfohlen, alle Azure-Dienste, die einem einzelnen Projekt zugeordnet sind (z. B. diese Labs), unter einer gemeinsamen Ressourcengruppe zu halten.

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

    4. Bestimmen Sie den Speicherort für Ihre Ressourcengruppe (wenn Sie eine neue Ressourcengruppe erstellen). Der Standort wäre 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 der Azure Storage im vorherigen Kapitel verwendet haben.

    5. Klicken Sie für den Abschnitt "Storage Konto" auf "Vorhandene Verwenden", und klicken Sie dann auf das Dropdownmenü, und klicken Sie dort auf das Storage Konto, das Sie im letzten Kapitel erstellt haben.

    6. Wählen Sie im Dropdownmenü die entsprechende Preisstufe für Arbeitsbereiche aus.

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

    8. Wählen Sie im Abschnitt " Preisebene des Webdienstplans " die Preisstufe Ihrer Wahl aus. Eine Entwicklungsteststufe namens DEVTEST Standard sollte ihnen kostenlos zur Verfügung stehen.

    9. Sie müssen auch bestätigen, dass Sie die auf diesen Dienst angewendeten Geschäftsbedingungen verstanden haben.

    10. Klicken Sie auf Erstellen.

      Screenshot of the Azure Machine Learning Studio dialog, which shows the information the user has entered into the text fields.

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

  5. Eine Benachrichtigung wird im Portal angezeigt, sobald die Dienstinstanz erstellt wurde.

    Screenshot of the Microsoft Azure window, which shows an unread notification in the navigation menu.

  6. Klicken Sie auf die Benachrichtigung, um Ihre neue Dienstinstanz zu erkunden.

    Screenshot of the Deployment succeeded notification, which informs the user that the workspace deployment to the resource group was successful.

  7. Klicken Sie in der Benachrichtigung auf die Schaltfläche " Zur Ressource wechseln ", um Ihre neue Dienstinstanz zu erkunden.

  8. Klicken Sie auf der angezeigten Seite im Abschnitt "Zusätzliche Links" auf "Starten" Machine Learning Studio, das Ihren Browser zum Machine Learning Studio-Portal leitet.

    Screenshot of the Microsoft Azure window, which shows the highlighted Launch Machine Learning Studio link in the content pane.

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

    Screenshot of the Machine Learning Studio window, which shows the highlighted Sign In button.

Kapitel 3 – Das Machine Learning Studio (klassisch): Setup des Datasets

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 je mehr vorhandene Daten Sie haben, desto besser ist der Algorithmus bei der Prognose zukünftiger Ergebnisse.

Eine Beispieltabelle wird Ihnen zur Verfügung gestellt, für diesen Kurs als ProductsTableCSV bezeichnet und kann hier heruntergeladen werden.

Wichtig

Die obige .zip Datei enthält sowohl die ProductsTableCSV als auch das Unitypackage, das Sie in Kapitel 6 benötigen. Dieses Paket wird auch innerhalb dieses Kapitels bereitgestellt, jedoch getrennt von der CSV-Datei.

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

Screenshot of the Microsoft Excel window, which shows a sample data set of best selling objects at every hour of each day in the year 2017.

Am Tag 1 von 2017, um 1 Uhr (Stunde 13), war das am besten verkaufte Element Salz und Pfeffer.

Diese Beispieltabelle enthält 9998 Einträge.

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

    Screenshot of the Microsoft Azure Machine Learning Studio classic portal, which shows the highlighted New button in the menu.

  2. Ein Abschnitt wird von unten nach oben angezeigt, und innerhalb dieses Bereichs befindet sich der Navigationsbereich auf der linken Seite. Klicken Sie auf "Dataset", und klicken Sie dann rechts neben der Datei "Aus lokaler Datei".

    Screenshot of the New dialog, which shows the highlighted Dataset and From Local File menu items.

  3. Hochladen sie das neue Dataset, indem Sie die folgenden Schritte ausführen:

    1. Das Uploadfenster wird angezeigt, in dem Sie Ihre Festplatte für das neue Dataset durchsuchen können.

      Screenshot of the Upload a new dataset dialog, which shows the Browse button for the user to find and select the data to upload.

    2. Lassen Sie das Kontrollkästchen nach auswahl und zurück im Uploadfenster unticked.

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

    4. Wählen Sie mithilfe des Dropdownmenüs " Typ" die Option "Generische CSV-Datei" mit einer Kopfzeile (.csv) aus.

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

Kapitel 4 – The Machine Learning Studio (classic): The Experiment

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

So beginnen Sie mit dem Erstellen eines Experiments:

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

    Screenshot of the Microsoft Azure Machine Learning Studio window, which shows the Experiment menu item is selected.

  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 die ProductsTableCSV auf den Experiment Canvas.

    Screenshot of the Experiment window, which shows the expanded My Datasets folder in the menu and Products Table C S V in the Experiment Canvas.

  4. Erweitern Sie im Bereich auf der linken Seite das Datentransformationsbeispiel>und "Teilen". Ziehen Sie dann das Element "Geteilte Daten" in den Experiment-Zeichenbereich. Das Element "Geteilte Daten" teilt den Datensatz in zwei Teile auf. Ein Teil, den Sie zum Trainieren des Maschinellen Lernalgorithmus verwenden. Der zweite Teil wird verwendet, um die Genauigkeit des generierten Algorithmus auszuwerten.

    Screenshot of the Experiment window, which shows the Partition and Sample and Split Data items in the menu with Split Data applied to the Canvas.

  5. Bearbeiten Sie im rechten Bereich (während das Element "Daten teilen" auf dem Zeichenbereich ausgewählt ist), den Anteil der Zeilen im ersten Ausgabedatensatz auf 0,7. Dadurch werden die Daten in zwei Teile aufgeteilt, der erste Teil beträgt 70 % der Daten, und der zweite Teil ist die verbleibenden 30 %. Um sicherzustellen, dass die Daten zufällig geteilt werden, vergewissern Sie sich, dass das Kontrollkästchen "Zufallsteilung " aktiviert bleibt.

    Screenshot of the Properties panel, which shows the filled Randomized split checkbox and the Fraction of rows field has been set to 0 point 7.

  6. Ziehen Sie eine Verbindung aus der Basis des ProductsTableCSV-Elements auf der Canvas an den oberen Rand des Elements "Geteilte Daten". Dadurch werden die Elemente verbunden und die ProductsTableCSV-Datasetausgabe (die Daten) an die Eingabe "Geteilte Daten" gesendet.

    Screenshot of the Experiment Canvas, which shows a connection drawn between Products Table C S V dot c s v and Split Data.

  7. Erweitern Sie im Bereich "Experimente" auf der linken Seite Machine Learning>Train. Ziehen Sie das Element "Train Model" in den Experiment-Zeichenbereich. Der Zeichenbereich sollte wie unten aussehen.

    Screenshot of the Experiment Canvas, which shows a connection drawn between Products Table C S V dot c s v and Split Data, with Train Model below.

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

    Screenshot of the Experiment Canvas, which shows a connection drawn between Products Table C S V dot c s v, Split Data, and Train Model.

  9. Wählen Sie das Element "Train Model " auf dem Zeichenbereich aus, und klicken Sie im Eigenschaftenbereich (auf der rechten Seite des Browserfensters) auf die Schaltfläche " Spaltenauswahl starten" .

  10. Geben Sie im Textfeld Produkt ein, und drücken Sie dann die EINGABETASTE, und das Produkt wird als Spalte festgelegt, um Vorhersagen zu trainieren. Klicken Sie anschließend in der unteren rechten Ecke auf das Teilstrich , um das Auswahldialogfeld zu schließen.

    Screenshot of the Select a single column dialog, which shows the highlighted product column in the columns menu.

  11. Sie werden einen Multiclass Logistics Regression-Algorithmus trainieren, um das am meisten verkaufte Produkt basierend auf der Stunde des Tages und dem Datum vorherzusagen. Es liegt über den Umfang dieses Dokuments hinaus, um die Details der verschiedenen Algorithmen zu erläutern, die von der Azure Machine Learning Studio bereitgestellt werden, obwohl Sie mehr aus dem Machine Learning Algorithmus-CheatSheet herausfinden können.

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

  13. Verbinden die Ausgabe vom unteren Rand der Multiclass Logistics Regression bis zur oberen linken Eingabe des Train Model-Elements.

    Screenshot of the Experiment Canvas, which shows 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>Score, und ziehen Sie das Score Model-Element auf den Zeichenbereich.

  15. Verbinden die Ausgabe vom unteren Rand des Train-Modells bis zur oberen linken Eingabe des Bewertungsmodells.

  16. Verbinden die untere rechte Ausgabe von geteilten Daten bis zur oberen rechten Eingabe des Bewertungsmodellelements.

    Screenshot of the Experiment Canvas, which shows the Score Model connected to Train Model and Split Data.

  17. Erweitern Sie in der Liste der Experimentelemente im Bereich auf der linken Seite Machine Learning>Evaluate, und ziehen Sie das Element "Modell bewerten" auf den Zeichenbereich.

  18. Verbinden die Ausgabe des Bewertungsmodells bis zur oberen linken Eingabe des Auswertungsmodells.

    Screenshot of the Experiment Canvas, which shows the Evaluate Model connected to Score Model.

  19. Sie haben Ihr erstes Machine Learning Experiment erstellt. Sie können das Experiment jetzt speichern und ausführen. Klicken Sie im Menü unten auf 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 of the Experiment Canvas menu, which shows the highlighted Save and Run buttons.

  20. Sie können den Status des Experiments oben rechts im Zeichenbereich sehen. Warten Sie einige Momente, bis das Experiment abgeschlossen ist.

    Wenn Sie über ein großes (reales) Dataset verfügen, ist es wahrscheinlich, dass das Experiment Stunden dauern kann.

    Screenshot of the Experiment Canvas window, which shows the status of the experiment in the top right corner.

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

    Screenshot of the Evaluate Model item's right click menu, which shows the highlighted Evaluation results and Visualize menu items.

  22. Die Auswertungsergebnisse werden angezeigt, die die vorhergesagten Ergebnisse im Vergleich zu den tatsächlichen Ergebnissen anzeigen. Dies verwendet die 30 % des ursprünglichen Datasets, das zuvor geteilt wurde, um das Modell zu bewerten. Sie können sehen, dass die Ergebnisse nicht großartig sind, idealerweise verfügen Sie über die höchste Zahl in jeder Zeile als hervorgehobenes Element in den Spalten.

    Screenshot of the Results chart, which shows the outcomes of the experiment in a graph of boxes with percentages.

  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 unten auf der Seite auf das Menüelement " Webdienst einrichten einrichten ", und klicken Sie dann auf "Predictive Web Service".

    Screenshot of the Experiment menu, which shows the highlighted Set Up Web Service menu item.

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

  26. Klicken Sie im Menü unten auf der Seite auf "Speichern", und klicken Sie dann auf "Ausführen". Der Status wird in der oberen rechten Ecke des Experimentbereichs aktualisiert.

    Screenshot of the Experiment menu, which shows the highlighted Run menu button and the Run menu item.

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

    Screenshot of the Experiment menu, which shows the highlighted Deploy Web Service Classic menu item from the Deploy Web Service menu button.

    Ihr Browser kann aufgefordert werden, ein Popup zuzulassen, das Sie zulassen sollten, obwohl Sie möglicherweise erneut den Webdienst bereitstellen müssen, wenn die Bereitstellungsseite nicht angezeigt wird.

  28. Nachdem das Experiment erstellt wurde, werden Sie auf eine Dashboardseite umgeleitet, auf der Ihr API-Schlüssel angezeigt wird. Kopieren Sie es in einen Editor für den Moment, sie benötigen Sie in Ihrem Code sehr bald. Nachdem Sie Ihren API-Schlüssel notiert haben, klicken Sie im Abschnitt "Standardendpunkt" unterhalb des Schlüssels auf die Schaltfläche "ANFORDERUNG/ANTWORT".

    Screenshot of the Microsoft Azure Machine Learning Studio window, which shows the A P I key and the highlighted Request slash Response link.

    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 ist.

  29. Eine neue Webseite wird geöffnet und zeigt die Anweisungen und einige Beispiele zur Anforderungsstruktur an, die vom Machine Learning Studio (klassisch) erforderlich ist. Kopieren Sie den Anforderungs-URI , der auf dieser Seite angezeigt wird, in Ihr Editor.

    Screenshot of the Request Response A P I Documentation page, which shows the highlighted Request U R I.

Sie haben jetzt ein Machine Learning-System erstellt, das das wahrscheinlichste Produkt bietet, das basierend auf historischen Einkaufsdaten verkauft wird, korreliert mit der Uhrzeit des Tages und des Tages des Jahres.

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 "Nutzen" .

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

Kapitel 5 – Einrichten der Unity-Project

Richten Sie Ihr Mixed Reality immersives Headset ein und testen Sie sie.

Hinweis

Für diesen Kurs benötigen Sie keine Bewegungscontroller. Wenn Sie die Einrichtung des immersiven Headsets benötigen , klicken Sie hier.

  1. Öffnen Sie Unity und erstellen Sie eine neue Unity-Project namens MR_MachineLearning. Stellen Sie sicher, dass der Projekttyp auf 3D festgelegt ist.

  2. Wenn Unity geöffnet ist, empfiehlt es sich, den Standardskript-Editor auf Visual Studio festzulegen. Wechseln Sie zu "Einstellungen bearbeiten>", und navigieren Sie dann aus dem neuen Fenster zu externen Tools. Ändern Sie den externen Skript-Editor in Visual Studio 2017. Schließen Sie das Fenster "Einstellungen" .

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

  4. Stellen Sie außerdem sicher, dass:

    1. Zielgerät wird auf "Jedes Gerät" festgelegt.

      Legen Sie für das Microsoft HoloLens das Zielgerätauf HoloLens fest.

    2. Buildtyp ist auf D3D festgelegt.

    3. SDK ist auf "Neueste Installation" festgelegt.

    4. Visual Studio Version ist auf "Neueste Installation" festgelegt.

    5. Build und Run ist auf den lokalen Computer festgelegt.

    6. Sorgen Sie sich jetzt nicht um das Einrichten von Szenen , da diese später bereitgestellt werden.

    7. Die verbleibenden Einstellungen sollten jetzt als Standard beibehalten werden.

      Screenshot of the Build Settings dialog, which shows the Universal Windows Platform menu item is selected.

  5. Klicken Sie im Fenster "Erstellen Einstellungen" auf die Schaltfläche "Player Einstellungen", damit wird der zugehörige Bereich im 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. Skripting-Runtime-Version sollte experimentell (.NET 4.6 Äquivalent) sein.

      2. Skripting-Back-End sollte .NET sein

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

        Screenshot of the Other Settings tab, which shows the settings that are enabled according to the outlined steps.

    2. Überprüfen Sie in der Registerkarte "Veröffentlichung Einstellungen" unter "Funktionen":

      • InternetClient

        Screenshot of the Publishing Settings tab, which shows the Internet Client capability is enabled underneath Capabilities.

    3. Weiter unten im Bereich, in XR-Einstellungen (unter "Veröffentlichen Einstellungen"), Tick Virtual Reality Unterstützt, stellen Sie sicher, dass das Windows Mixed Reality SDK hinzugefügt wird.

      Screenshot of the X R Settings tab, which shows the Windows Mixed Reality S D K underneath Virtual Reality S D K s is enabled.

  7. Zurück in Build EinstellungenUnity C# Projects ist nicht mehr abgeblentet; aktivieren Sie das Kontrollkästchen neben diesem.

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

  9. Speichern Sie Ihre Project (FILE > SAVE PROJECT).

Kapitel 6 – Importieren des MLProducts Unity-Pakets

Für diesen Kurs müssen Sie ein Unity-Asset-Paket namens Azure-MR-307.unitypackage herunterladen. Dieses Paket enthält eine Szene, mit allen Objekten in diesem Vorbau, damit Sie sich darauf konzentrieren können, alles zu arbeiten. Das Script "ShelfKeeper " wird bereitgestellt, enthält jedoch nur die öffentlichen Variablen für den Zweck der Szeneneinrichtungsstruktur. Sie müssen alle anderen Abschnitte ausführen.

So importieren Sie dieses Paket:

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

    Screenshot of the Unity Dashboard, which shows the highlighted Import Package and Custom Package menu items.

  2. Verwenden Sie die Dateiauswahl, um das Azure-MR-307.unitypackage-Paket auszuwählen, und klicken Sie auf "Öffnen".

  3. Eine Liste der Komponenten für dieses Objekt wird Ihnen angezeigt. Bestätigen Sie den Import, indem Sie auf "Importieren" klicken.

    Screenshot of the Import Unity Package dialog, which shows the Azure Machine Learning package is being imported.

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

    Screenshot of the Unity Project Panel, which shows the newly imported folders in the Assets folder.

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

    Screenshot of the Unity Scene window, which shows the highlighted Gizmos menu item in the top navigation.

Kapitel 7 – Überprüfen der DLLs in Unity

Um die Verwendung von JSON-Bibliotheken (verwendet für die Serialisierung und Deserialisierung) zu nutzen, wurde eine Newtonsoft-DLL mit dem von Ihnen bereitgestellten Paket implementiert. Die Bibliothek sollte die richtige Konfiguration haben, aber es lohnt sich zu überprüfen (insbesondere, wenn Sie Probleme mit Code haben, die nicht funktionieren).

Gehen Sie folgendermaßen vor:

  • Klicken Sie links auf die Newtonsoft-Datei im Plugins-Ordner, und schauen Sie sich den Inspektorbereich an. Stellen Sie sicher, dass jede Plattform angekreuzt ist. Wechseln Sie zur UWP-Registerkarte , und stellen Sie sicher, dass der Vorgang nicht angestrichen wird.

    Importing the DLLs in Unity

Kapitel 8 – Erstellen der ShelfKeeper-Klasse

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

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

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

  2. Ersetzen Sie alle im Skript vorhandenen Code durch den folgenden Code, der die Uhrzeit und das Datum festlegt und eine Methode zum Anzeigen eines Produkts aufweist.

    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. Achten Sie darauf, Ihre Änderungen in Visual Studio zu speichern, bevor Sie zu Unity zurückkehren.

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

    Screenshot of the Shelf Keeper class, which shows that the reference targets are set to Date Text Mesh and Time Text Mesh.

    Wichtig

    Wenn Ihr Skript nicht über die Referenzziele verfügt (z. B. Datum (Text Mesh)), ziehen Sie einfach die entsprechenden Objekte aus dem Hierarchiebereich in die Zielfelder. Siehe unten zur Erläuterung, falls erforderlich:

    1. Öffnen Sie das Spawn Point-Array innerhalb des ShelfKeeper-Komponentenskripts , indem Sie links darauf klicken. Ein Teilabschnitt wird als "Größe" angezeigt, der die Größe des Arrays angibt. Geben Sie 3 in das Textfeld neben der Größe ein, und drücken Sie die EINGABETASTE, und drei Steckplätze werden unterhalb erstellt.

    2. Erweitern Sie innerhalb der Hierarchie das Zeitanzeigeobjekt (indem Sie links auf den Pfeil neben ihm klicken). Klicken Sie als Nächstes auf das Haupt-Kamera innerhalb der Hierarchie, sodass der Inspektor seine Informationen anzeigt.

    3. Wählen Sie im Hierarchiebereich die Haupt-Kamera aus. Ziehen Sie die Objekte"Datum" und "Uhrzeit" aus dem Hierarchiebereich in die Fenster "Datumstext" und "Zeittext" innerhalb des Inspektors der Haupt-Kamera in der ShelfKeeper-Komponente.

    4. Ziehen Sie die Spawnpunkte aus dem Hierarchiebereich ( unterhalb des Regalobjekts) auf die 3Elementreferenzziele unterhalb des Spawn Point-Arrays , wie im Bild dargestellt.

      Screenshot of the Hierarchy Panel, which shows that the Date, Time, and the three Spawn Point menu items are in the Shelf Keeper class.

Kapitel 9 – Erstellen der ProductPrediction-Klasse

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

Diese Klasse ist verantwortlich für:

  • Abfragen der Machine Learning Dienstinstanz, die das aktuelle Datum und die aktuelle Uhrzeit bereitstellt.

  • 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 Szene anzuzeigen.

So erstellen Sie diese Klasse:

  1. Wechseln Sie zum Ordner "Skripts" im Project Bereich.

  2. Klicken Sie mit der rechten Maustaste in den Ordner, "C#-Skripterstellen>". 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 "Lösung neu laden".

  5. Fügen Sie den folgenden Namespaces oben in 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. In der ProductPrediction-Klasse fügen Sie die folgenden beiden Objekte ein, die aus einer Reihe geschachtelter Klassen bestehen. Diese Klassen werden verwendet, um die JSON für den Machine Learning Service 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 der JSON-verwandte Code am unteren Rand des Skripts liegt, unter allen anderen Code und nicht auf die Weise):

        /// <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

    Stellen Sie sicher, dass Sie den Primärschlüssel und den Anforderungsantwortendpunkt aus dem Machine Learning Portal in die Variablen hier einfügen. Die folgenden Bilder zeigen, wo Sie den Schlüssel und Endpunkt aus genommen haben.

    Screenshot of the Microsoft Azure Machine Learning Studio, which shows the Request slash Response link underneath A P I Help Page.

    Screenshot of the Request Response A P I Documentation page, which shows the highlighted POST Request U R I.

  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 das Datum und die Uhrzeit aus Windows erfasst und in ein Format konvertiert, das unser Machine Learning Experiment verwenden kann, um die daten zu vergleichen, die in der Tabelle gespeichert sind.

        /// <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 erhält.

        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 die Deerialisierung der JSON-Antwort verantwortlich ist und das Ergebnis der Deserialisierung an die ShelfKeeper-Klasse kommuniziert. Dieses Ergebnis ist die Namen der drei Elemente, die vorhergesagt wurden, am aktuellen Datum und zur aktuellen Uhrzeit am meisten zu verkaufen. Fügen Sie den folgenden Code in die ProductPrediction-Klasse ein, unter der vorherigen Methode.

        /// <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 kehren Sie zurück zu Unity.

  14. Ziehen Sie das ProductPrediction-Klassenskript aus dem Skriptordner auf das Main-Kamera-Objekt.

  15. Speichern Sie Ihre Szene und projektierenSieDateispeicherszene/Datei>>speichern Project.

Kapitel 10 – Erstellen der UWP-Lösung

Es ist jetzt 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 aufDateispeicherszenen> klicken.

  2. Wechseln zu Dateibuild>Einstellungen

  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 "Szenen hinzufügen",

  5. Klicken Sie auf Erstellen.

    Screenshot of the Build Settings dialog, which shows the Universal Windows Platform menu item is highlighted.

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

  7. Erstellen Sie einen BUILDS-Ordner , und erstellen Sie innerhalb dieses Ordners 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 den Build an diesem Speicherort zu beginnen.

    Screenshot of the File Explorer window, which shows the highlighted Builds folder.

    Screenshot of the File Explorer window, which shows the contents of the Builds folder and the highlighted Select Folder button.

  9. Nachdem Unity das Gebäude abgeschlossen hat (es kann einige Zeit dauern), wird ein Explorer Fenster an der Stelle Ihres Build geöffnet (überprüfen Sie Ihre Taskleiste, da sie möglicherweise nicht immer über Ihren Fenstern angezeigt wird, aber Sie über dem Hinzufügen eines neuen Fensters informieren).

Kapitel 11 – Bereitstellen Ihrer Anwendung

So stellen Sie Ihre Anwendung bereit:

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

  2. Wenn Visual Studio geöffnet sind, müssen Sie NuGet Pakete wiederherstellen, die mit der rechten Maustaste auf Ihre MachineLearningLab_Build Lösung klicken können, aus dem Projektmappen-Explorer (gefunden rechts neben Visual Studio), und klicken Sie dann auf "NuGet Pakete wiederherstellen":

    Screenshot of the Visual Studio window, which shows the highlighted Restore Nu Get Packages menu item.

  3. Wählen Sie im Projektmappenkonfigurations-Befehl "Debuggen" aus.

  4. Wählen Sie in der Lösungsplattform x86, lokaler Computer aus.

    Für die Microsoft HoloLens können Sie dies auf Remotecomputer einfacher festlegen, sodass Sie nicht an Ihren Computer angebindet sind. Sie müssen jedoch auch folgendes ausführen:

    • Kennen Sie die IP-Adresse Ihrer HoloLens, die im Einstellungen > Netzwerk-Internet &>> Wi-Fi Erweiterten Optionen gefunden werden kann. Die IPv4 ist die Adresse, die Sie verwenden sollten.
    • Stellen Sie sicher, dass der Entwicklermodusaktiviert ist; in Einstellungen > UpdateSicherheit &> für Entwickler gefunden.

    Screenshot of the Microsoft Visual Studio menu, which shows that Local Machine is selected in the Solution Platform.

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

  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 aus der Initialisierung werden die Daten, die Sie in Azure eingerichtet haben, abgerufen. Die Daten werden innerhalb Ihrer Anwendung deserialisiert, und die drei top-Ergebnisse für Ihr aktuelles Datum und die Uhrzeit werden visuell bereitgestellt, da drei Modelle auf der Bank vorhanden sind.

Ihre fertige Machine Learning Anwendung

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

Screenshot of the Microsoft Visual Studio window, which shows a shelf with three objects and a card with the text 15 o' clock 23 Feb.

Übung

Übung 1

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

Übung 2

Mithilfe von Azure Tables wird eine neue Tabelle mit Wetterinformationen aufgefüllt und ein neues Experiment mithilfe der Daten erstellt.