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.

    Azure Storage Account Setup

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

    Azure Storage Account Setup

  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.

    Azure Storage Account Setup

  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.

    Azure Storage Account Setup

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.

    The Azure Machine Learning Studio (classic)

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

      The Azure Machine Learning Studio (classic)

  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.

    The Azure Machine Learning Studio (classic)

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

    The Azure Machine Learning Studio (classic)

  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.

    The Azure Machine Learning Studio (classic)

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

    The Azure Machine Learning Studio (classic)

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.

The Machine Learning Studio (classic): Dataset setup

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 .

    The Machine Learning Studio (classic): Dataset setup

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

    The Machine Learning Studio (classic): Dataset setup

  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.

      The Machine Learning Studio (classic): Dataset setup

    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 ExperimentBlank Experiment>.

    The Machine Learning Studio (classic): The Experiment

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

  3. Erweitern Sie im Bereich auf der linken Seite gespeicherte DatasetsMy-Datasets>, und ziehen Sie die ProductsTableCSV auf den Experiment Canvas.

    The Machine Learning Studio (classic): The Experiment

  4. Erweitern Sie im Bereich auf der linken Seite "Data TransformationSample>" und "Split". 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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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>InitializeModelClassification>, 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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

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

    The Machine Learning Studio (classic): The Experiment

  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.

    The Machine Learning Studio (classic): The Experiment

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

    The Machine Learning Studio (classic): The Experiment

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

    The Machine Learning Studio (classic): The Experiment

    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.

    The Machine Learning Studio (classic): The Experiment

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 Unterstützung beim Einrichten des immersiven Headsets benötigen, klicken Sie bitte 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 "EditPreferences>", 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 zu FileBuild>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 ist auf "Beliebiges Gerät" festgelegt.

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

    2. Der 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 lokalen Computer festgelegt.

    6. Machen Sie sich derzeit keine Sorgen über das Einrichten von Szenen , da diese später bereitgestellt werden.

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

      Setting up the Unity Project

  5. Klicken Sie im Fenster "Build Einstellungen" auf die Schaltfläche "Player Einstellungen". Dadurch 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. ScriptingRuntime-Version sollte experimentell sein (.NET 4.6 Äquivalent)

      2. Skript-Back-End sollte .NET sein

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

        Setting up the Unity Project

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

      • InternetClient

        Setting up the Unity Project

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

      Setting up the Unity Project

  7. Zurück in Build EinstellungenUnity C#-Projekte 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 Package namens Azure-MR-307.unitypackage herunterladen. Dieses Paket ist vollständig mit einer Szene, mit allen Objekten in diesem Vorbau, sodass Sie sich darauf konzentrieren können, alles zu arbeiten. Das ShelfKeeper-Skript 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 "Objekte " im Menü oben auf dem Bildschirm, und klicken Sie dann auf "Paket importieren", "Benutzerdefiniertes Paket".

    Importing the MLProducts Unity Package

  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.

    Importing the MLProducts Unity Package

  4. Sobald der Import abgeschlossen ist, werden Sie feststellen, dass einige neue Ordner in Ihrem Unity Project Panel erschienen sind. 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.

    Importing the MLProducts Unity Package

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

    Importing the MLProducts Unity Package

Kapitel 7 – Überprüfen der DLLs in Unity

Um die Verwendung von JSON-Bibliotheken (zum Serialisieren und Deserialisieren) 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 Probleme mit Code nicht funktionieren).

Gehen Sie folgendermaßen vor:

  • Klicken Sie mit der linken Maustaste auf die Newtonsoft-Datei im Ordner "Plugins", und schauen Sie sich den Inspektorbereich an. Stellen Sie sicher, dass jede Plattform abgestrichen ist. Wechseln Sie zur UWP-Registerkarte , und stellen Sie sicher, dass " Nicht verarbeiten" abgestrichen ist.

    Importing the DLLs in Unity

Kapitel 8 – Erstellen der ShelfKeeper-Klasse

Die ShelfKeeper-Klasse hostet Methoden, mit denen die Benutzeroberfläche und Produkte gesteuert werden, die in der Szene angezeigt werden.

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:

    Create the ShelfKeeper class

    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 die Hauptkamera aus der Hierarchie, sodass der Inspektor seine Informationen anzeigt.

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

    4. Ziehen Sie die Spawnpunkte aus dem Hierarchiebereich (unter dem Regalobjekt) auf die 3Element-Referenzziele unterhalb des Spawn Point-Arrays, wie in der Abbildung dargestellt.

      Create the ShelfKeeper 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 , CreateC># Script. 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.

    The Machine Learning Studio (classic): The Experiment

    The Machine Learning Studio (classic): The Experiment

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

  15. Speichern Sie Ihre Szene und Project FileSave Scene/FileSave>>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 auf "FileSave-Szenen>" klicken.

  2. Wechseln zu FileBuild>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.

    Build the UWP Solution

  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.

    Build the UWP Solution

    Build the UWP Solution

  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":

    Add NuGet Packages

  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.

    Add NuGet Packages

  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.

Add NuGet Packages

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