注意

Mixed Reality Academy チュートリアルでは、HoloLens として設計された (第 1 世代) と混在の現実イマーシブ ヘッドセットに注意してください。The Mixed Reality Academy tutorials were designed with HoloLens (1st gen) and Mixed Reality Immersive Headsets in mind. そのため、これらのデバイス向けの開発にガイダンスがまだ必要な開発者のための場所でこれらのチュートリアルのままにすることが重要と思われます。As such, we feel it is important to leave these tutorials in place for developers who are still looking for guidance in developing for those devices. これらのチュートリアルは いない 最新のツールセットや相互作用が使用されている HoloLens 2 で更新されます。These tutorials will not be updated with the latest toolsets or interactions being used for HoloLens 2. サポートされているデバイスで作業を続行するが保持されます。They will be maintained to continue working on the supported devices. 一連の新しい HoloLens 2 を開発する方法を示すチュートリアルは、今後投稿があります。There will be a new series of tutorials that will be posted in the future that will demonstrate how to develop for HoloLens 2. この通知が投稿されるときにこれらのチュートリアルへのリンクが更新されます。This notice will be updated with a link to those tutorials when they are posted.


MR と Azure 307 の場合:機械学習MR and Azure 307: Machine learning

最終的な製品-開始

このコースでは、Azure Machine Learning Studio を使用して複合現実のアプリケーションに機械学習 (ML) の機能を追加する方法を学びます。In this course, you will learn how to add Machine Learning (ML) capabilities to a mixed reality application using Azure Machine Learning Studio.

Azure Machine Learning Studioは、開発者は多数の machine learning のアルゴリズムは、データ入力、出力、準備、およびビジュアル化に役立つ、Microsoft のサービスです。Azure Machine Learning Studio is a Microsoft service, which provides developers with a large number of machine learning algorithms, which can help with data input, output, preparation, and visualization. これらのコンポーネントからの予測分析実験の開発、反復処理、およびモデルのトレーニングに使用することはします。From these components, it is then possible to develop a predictive analytics experiment, iterate on it, and use it to train your model. 次のトレーニングを行うことができます、モデル運用 Azure のクラウド内で新しいデータをスコア付けできるようにします。Following training, you can make your model operational within the Azure cloud, so that it can then score new data. 詳細については、次を参照してください。、 Azure Machine Learning Studio ページします。For more information, visit the Azure Machine Learning Studio page.

このコースを完了すると、複合現実イマーシブ ヘッドセット アプリケーションとは、次の操作方法を説明しました。Having completed this course, you will have a mixed reality immersive headset application, and will have learned how do the following:

  1. テーブルを売上データの提供、 Azure Machine Learning Studioポータル、および人気のある項目の将来の売上を予測するアルゴリズムを設計します。Provide a table of sales data to the Azure Machine Learning Studio portal, and design an algorithm to predict future sales of popular items.
  2. 作成、 Unity プロジェクト、受信し、ML サービスからの予測データを解釈することができます。Create a Unity Project, which can receive and interpret prediction data from the ML service.
  3. 内の視覚的に predication データを表示、 Unity プロジェクト棚の上、最も人気のある販売品目を提供することにより、します。Display the predication data visually within the Unity Project, through providing the most popular sales items, on a shelf.

アプリケーションでは、責任ですが、設計と、結果を統合する方法について。In your application, it is up to you as to how you will integrate the results with your design. このコースは、Unity プロジェクトで Azure サービスを統合する方法を説明する設計されています。This course is designed to teach you how to integrate an Azure Service with your Unity Project. 複合現実アプリを強化するためには、このコース得た知識を使用することがあります。It is your job to use the knowledge you gain from this course to enhance your mixed reality application.

このコースは、他の複合現実ラボに直接関係は自己完結型のチュートリアルです。This course is a self-contained tutorial, which does not directly involve any other Mixed Reality Labs.

デバイスのサポートDevice support

コースCourse HoloLensHoloLens イマーシブ ヘッドセットImmersive headsets
MR と Azure 307 の場合:機械学習MR and Azure 307: Machine learning ✔️✔️ ✔️✔️

注意

このコースが主に Windows Mixed Reality 没入型 (VR) ヘッドセットを重点的に Microsoft HoloLens には、このコースで学習する内容を適用することもできます。While this course primarily focuses on Windows Mixed Reality immersive (VR) headsets, you can also apply what you learn in this course to Microsoft HoloLens. コースを実行するとき、HoloLens をサポートするために必要な場合があります変更でノートが表示されます。As you follow along with the course, you will see notes on any changes you might need to employ to support HoloLens. HoloLens を使用する場合は、音声キャプチャ中にいくつかのエコーが気付きです。When using HoloLens, you may notice some echo during voice capture.

前提条件Prerequisites

注意

このチュートリアルは、Unity を使用した基本的な経験がある開発者向けに設計およびC#します。This tutorial is designed for developers who have basic experience with Unity and C#. また、前提条件やこのドキュメント内の書面の手順を表すテストおよび (2018 年 5 月) の書き込み時に検証されたがどのようなことに注意してください。Please also be aware that the prerequisites and written instructions within this document represent what has been tested and verified at the time of writing (May 2018). 内に一覧表示するには自由に最新のソフトウェアを使用して、インストール ツール記事ことについては、このコースでとまったく同じで見つかりますの下に記載されているものよりも新しいソフトウェアでどのようなことは仮定されませんが、.You are free to use the latest software, as listed within the install the tools article, though it should not be assumed that the information in this course will perfectly match what you'll find in newer software than what's listed below.

次のハードウェアとソフトウェアこのコースをお勧めします。We recommend the following hardware and software for this course:

開始前の作業Before you start

このプロジェクトのビルドの問題の発生を避けるため、強くお勧めのルートまたはルート近くフォルダーでこのチュートリアルで説明したようにプロジェクトを作成すること (長いフォルダー パスはビルド時に問題を発生できます)。To avoid encountering issues building this project, it is strongly suggested that you create the project mentioned in this tutorial in a root or near-root folder (long folder paths can cause issues at build-time).

第 1 章 - Azure のストレージ アカウントのセットアップChapter 1 - Azure Storage Account setup

Azure Translator API を使用するには、アプリケーションに使用可能にするサービスのインスタンスを構成する必要があります。To use the Azure Translator API, you will need to configure an instance of the service to be made available to your application.

  1. ログイン、 Azure Portalします。Log in to the Azure Portal.

    注意

    Azure アカウントがいない場合は、1 つを作成する必要があります。If you do not already have an Azure account, you will need to create one. クラスルームまたはラボのような状況では、このチュートリアルをフォローしている場合は、講師または新しいアカウントのセットアップについて proctors のいずれかにお問い合わせください。If you are following this tutorial in a classroom or lab situation, ask your instructor or one of the proctors for help setting up your new account.

  2. ログインした後は、をクリックしてストレージ アカウント左側のメニュー。Once you are logged in, click on Storage Accounts in the left menu.

    Azure Storage アカウントのセットアップ

    注意

    単語新規に置き換えられましたリソースの作成、新しいポータルでします。The word New may have been replaced with Create a resource, in newer portals.

  3. ストレージ アカウント タブで、をクリックして追加します。On the Storage Accounts tab, click on Add.

    Azure Storage アカウントのセットアップ

  4. ストレージ アカウントの作成パネル。In the Create Storage Account panel:

    1. 挿入、名前お使いのアカウントに、数字と小文字のみこのフィールドを受け入れるに注意してください。Insert a Name for your account, be aware this field only accepts numbers, and lowercase letters.

    2. デプロイ モデルでは、 選択Resource managerします。For Deployment model, select Resource manager.

    3. アカウントの種類ストレージ (汎用 v1) します。For Account kind, select Storage (general purpose v1).

    4. パフォーマンス標準します。For Performance, select Standard.

    5. レプリケーション選択読み取りアクセスの geo 冗長ストレージ (RA-GRS) します。For Replication select Read-access-geo-redundant storage (RA-GRS).

    6. まま転送が必須のセキュリティで保護されたとして無効になっているします。Leave Secure transfer required as Disabled.

    7. 選択、サブスクリプションします。Select a Subscription.

    8. 選択、リソース グループか新規に作成します。Choose a Resource Group or create a new one. リソース グループは、監視、プロビジョニングのアクセスを制御および Azure の資産のコレクションの課金を管理する方法を提供します。A resource group provides a way to monitor, control access, provision and manage billing for a collection of Azure assets. 勧めします (例: これらのラボ) など一般的なリソース グループの下の 1 つのプロジェクトに関連付けられているすべての Azure サービスを保持する)。It is recommended to keep all the Azure services associated with a single project (e.g. such as these labs) under a common resource group).

      詳細にする場合、Azure リソース グループについてのごリソース グループの記事を参照してください。します。If you wish to read more about Azure Resource Groups, please visit the resource group article.

    9. 確認、場所(新しいリソース グループを作成する) 場合は、リソース グループ。Determine the Location for your resource group (if you are creating a new Resource Group). 場所は、アプリケーションが実行リージョンにあるが理想的です。The location would ideally be in the region where the application would run. 一部の Azure 資産は特定のリージョンでのみ使用できます。Some Azure assets are only available in certain regions.

  5. また、このサービスに適用される条件を理解したことを確認する必要があります。You will also need to confirm that you have understood the Terms and Conditions applied to this Service.

    Azure Storage アカウントのセットアップ

  6. クリックすると作成サービスを作成するを待機する必要があります、これは少し時間がかかる場合があります。Once you have clicked on Create, you will have to wait for the service to be created, this might take a minute.

  7. 通知は、サービス インスタンスが作成されたら、ポータルに表示されます。A notification will appear in the portal once the Service instance is created.

    Azure Storage アカウントのセットアップ

第 2 章 – Azure の Machine Learning StudioChapter 2 - The Azure Machine Learning Studio

使用する、 Azure Machine Learningアプリケーションに使用可能にする Machine Learning サービスのインスタンスを構成する必要があります。To use the Azure Machine Learning, you will need to configure an instance of the Machine Learning service to be made available to your application.

  1. Azure Portal をクリックして新規左上隅にある検索してMachine Learning Studio ワークスペース、キーを押してEnterIn the Azure Portal, click on New in the top left corner, and search for Machine Learning Studio Workspace, press Enter.

    Azure Machine Learning Studio

  2. 新しいページがの説明を入力、 Machine Learning Studio ワークスペースサービス。The new page will provide a description of the Machine Learning Studio Workspace service. このダイアログ ボックスの左下にある at をクリックして、作成ボタンは、このサービスとの関連付けを作成します。At the bottom left of this prompt, click the Create button, to create an association with this service.

  3. クリックすると作成、新しいに関するいくつかの詳細を提供する必要があるパネルが表示されますMachine Learning Studio service:Once you have clicked on Create, a panel will appear where you need to provide some details about your new Machine Learning Studio service:

    1. 必要な挿入ワークスペース名このサービス インスタンス。Insert your desired Workspace name for this service instance.

    2. 選択、サブスクリプションします。Select a Subscription.

    3. 選択、リソース グループか新規に作成します。Choose a Resource Group or create a new one. リソース グループは、監視、プロビジョニングのアクセスを制御および Azure の資産のコレクションの課金を管理する方法を提供します。A resource group provides a way to monitor, control access, provision and manage billing for a collection of Azure assets. 勧めします (例: これらのラボ) など一般的なリソース グループの下の 1 つのプロジェクトに関連付けられているすべての Azure サービスを保持する)。It is recommended to keep all the Azure services associated with a single project (e.g. such as these labs) under a common resource group).

      詳細にする場合、Azure リソース グループについてのごリソース グループの記事を参照してください。します。If you wish to read more about Azure Resource Groups, please visit the resource group article.

    4. 確認、場所(新しいリソース グループを作成する) 場合は、リソース グループ。Determine the Location for your resource group (if you are creating a new Resource Group). 場所は、アプリケーションが実行リージョンにあるが理想的です。The location would ideally be in the region where the application would run. 一部の Azure 資産は特定のリージョンでのみ使用できます。Some Azure assets are only available in certain regions. 前の章で、Azure Storage を作成するために使用したのと同じリソース グループを使用する必要があります。You should use the same resource group that you used for creating the Azure Storage in the previous Chapter.

    5. ストレージ アカウントセクションで、既存、ドロップダウン メニューで、をクリックしておよびそこから、をクリックして、ストレージ アカウント最後の章で作成しました。For the Storage account section, click Use existing, then click the dropdown menu, and from there, click the Storage Account you created in the last Chapter.

    6. 適切な選択ワークスペースの価格レベルドロップダウン メニューからできます。Select the appropriate Workspace pricing tier for you, from the dropdown menu.

    7. 内で、 Web サービス プランセクションで、作成 、新しいテキスト フィールドに名前を挿入します。Within the Web service plan section, click Create new, then insert a name for it in the text field.

    8. Web サービス プランの価格レベルセクションで、任意の価格レベルを選択します。From the Web service plan pricing tier section, select the price tier of your choice. テストと呼ばれる層開発DEVTEST 標準料金なしで利用できるようにします。A development testing tier called DEVTEST Standard should be available to you at no charge.

    9. また、このサービスに適用される条件を理解したことを確認する必要があります。You will also need to confirm that you have understood the Terms and Conditions applied to this Service.

    10. [作成] をクリックします。Click Create.

      Azure Machine Learning Studio

  4. クリックすると作成サービスを作成するを待機する必要があります、これは少し時間がかかる場合があります。Once you have clicked on Create, you will have to wait for the service to be created, this might take a minute.

  5. 通知は、サービス インスタンスが作成されたら、ポータルに表示されます。A notification will appear in the portal once the Service instance is created.

    Azure Machine Learning Studio

  6. 新しいサービス インスタンスを探索する通知をクリックします。Click on the notification to explore your new Service instance.

    Azure Machine Learning Studio

  7. をクリックして、リソースに移動通知では、新しいサービス インスタンスを表示するボタンをクリックします。Click the Go to resource button in the notification to explore your new Service instance.

  8. 表示されるページで、その他のリンクセクションで、 Machine Learning Studio の起動には、ブラウザーを直接は、 Machine Learning Studioポータルです。In the page displayed, under the Additional Links section, click Launch Machine Learning Studio, which will direct your browser to the Machine Learning Studio portal.

    Azure Machine Learning Studio

  9. 使用して、サインインボタン、右上にあるか、センターで、Machine Learning Studio にログインします。Use the Sign In button, at the top right or in the center, to log into your Machine Learning Studio.

    Azure Machine Learning Studio

第 3 章 - Machine Learning Studio:データセットのセットアップChapter 3 - The Machine Learning Studio: Dataset setup

機械学習アルゴリズムの動作方法の 1 つは既存のデータを分析し、将来の結果を予測しように基づいて既存のデータ セット。One of the ways Machine Learning algorithms work is by analyzing existing data and then attempting to predict future results based on the existing data set. 通常、つまり、ほどアルゴリズムは将来の結果を予測するのにはするが、必要以上の既存のデータです。This generally means that the more existing data you have, the better the algorithm will be at predicting future results.

サンプル テーブルは、このコースと呼ばれるProductsTableCSV ページでダウンロードできるします。A sample table is provided to you, for this course, called ProductsTableCSV and can be downloaded here.

重要

上記の .zip ファイルには、両方が含まれています、 ProductsTableCSV.unitypackageで必要になる第 6 章します。The above .zip file contains both the ProductsTableCSV and the .unitypackage, which you will need in Chapter 6. このパッケージが csv ファイルに個別にも、その章で提供されます。This package is also provided within that Chapter, though separate to the csv file.

このサンプル データ セットには、2017 年の日付ごとの 1 時間ごとにベストセラーのオブジェクトのレコードが含まれています。This sample data set contains a record of the best-selling objects at every hour of each day of the year 2017.

Machine Learning Studio:データセットのセットアップ

たとえば、2017年の 1 日目、午後 1 時 (時間 13) で、ベストセラー項目が塩とコショウします。For example, on day 1 of 2017, at 1pm (hour 13), the best-selling item was salt and pepper.

このサンプルのテーブルには、9998 エントリが含まれています。This sample table contains 9998 entries.

  1. 戻って、 Machine Learning Studioポータル、としては、このテーブルを追加し、データセットML の。Head back to the Machine Learning Studio portal, and add this table as a Dataset for your ML. これをクリックすると、 + 新規画面の左下隅のボタンをクリックします。Do this by clicking the + New button in the bottom left corner of the screen.

    Machine Learning Studio:データセットのセットアップ

  2. セクションを進めていくと内から下、左のナビゲーション パネルがあること。A section will come up from the bottom, and within that there is navigation panel on the left. クリックしてデータセットの右側にローカル ファイルからします。Click Dataset, then to the right of that, From Local File.

    Machine Learning Studio:データセットのセットアップ

  3. 新しいアップロードデータセット次の手順。Upload the new Dataset by following these steps:

    1. 可能な場合、アップロードのウィンドウが表示参照新しいデータセットのハード ドライブ。The upload window will appear, where you can Browse your hard drive for the new dataset.

      Machine Learning Studio:データセットのセットアップ

    2. 選択すると、し、[アップロード] ウィンドウに戻り、ティックのチェック ボックスをオンのままにします。Once selected, and back in the upload window, leave the checkbox unticked.

    3. 次のテキスト フィールドに入力ProductsTableCSV.csvデータセットの名前として (ただし、自動的に追加する必要があります)。In the text field below, enter ProductsTableCSV.csv as the name for the dataset (though should automatically be added).

    4. ドロップダウン メニューを使用してを選択します汎用 CSV ファイル (.csv) ヘッダーします。Using the dropdown menu for Type, select Generic CSV File with a header (.csv).

    5. アップロードのウィンドウの右下でチェック マークを押して、データセットがアップロードされます。Press the tick in the bottom right of the upload window, and your Dataset will be uploaded.

第 4 章 - Machine Learning Studio:実験Chapter 4 - The Machine Learning Studio: The Experiment

機械学習システムを作成するには、理論的には、データについての検証に、実験を作成する必要があります。Before you can build your machine learning system, you will need to build an experiment, to validate your theory about your data. 結果と共に、データと考えられる結果の間の相関関係がない場合または複数のデータが必要かどうかがわかります。With the results, you will know whether you need more data, or if there is no correlation between the data and a possible outcome.

実験の作成を開始するには。To start creating an experiment:

  1. 再びクリックして、 + 新規、ページの左下のボタンをクリックし、実験 > 空白の実験します。Click again on the + New button on the bottom left of the page, then click on Experiment > Blank Experiment.

    Machine Learning Studio:実験

  2. 空白の実験では、新しいページが表示されます。A new page will be displayed with a blank Experiment:

  3. 左側のパネルから展開 保存されたデータセット > My Datasets をドラッグし、 ProductsTableCSVに、実験キャンバスします。From the panel on the left expand Saved Datasets > My Datasets and drag the ProductsTableCSV on to the Experiment Canvas.

    Machine Learning Studio:実験

  4. 左側のパネルでデータ変換 > サンプルおよび分割します。In the panel on the left, expand Data Transformation > Sample and Split. ドラッグし、データの分割で項目を実験キャンバスします。Then drag the Split Data item in to the Experiment Canvas. 分割されたデータ項目では、データ セットを 2 つの部分に分割します。The Split Data item will split the data set into two parts. 機械学習アルゴリズムのトレーニングに使用する 1 つの部分。One part you will use for training the machine learning algorithm. 2 番目の部分は生成されたアルゴリズムの精度を評価するためには。The second part will be used to evaluate the accuracy of the algorithm generated.

    Machine Learning Studio:実験

  5. (キャンバス上の項目が選択されている分割データ) の中に右側のパネルで編集、最初の出力データセット内の行の割合0.7します。In the right panel (while the Split Data item on the canvas is selected), edit the Fraction of rows in the first output dataset to 0.7. これは、データの 2 つの部分の分割、最初の部分は、データの 70% になります、および 2 番目の部分は、残りの 30% になります。This will split the data into two parts, the first part will be 70% of the data, and the second part will be the remaining 30%. データがランダムに分割することを確認するため、確認、ランダム分割チェック ボックスが選択されます。To ensure that the data is split randomly, make sure the Randomized split checkbox remains checked.

    Machine Learning Studio:実験

  6. ベースからの接続をドラッグして、 ProductsTableCSV分割されたデータ項目の先頭に、キャンバス上の項目。Drag a connection from the base of the ProductsTableCSV item on the canvas to the top of the Split Data item. 項目を接続が送信され、 ProductsTableCSV入力データを分割するデータセットの出力 (データ)。This will connect the items and send the ProductsTableCSV dataset output (the data) to the Split Data input.

    Machine Learning Studio:実験

  7. 実験左側のパネルで、展開 *Machine Learning > *トレーニングします**。In the Experiments panel on the left side, expand *Machine Learning > *Train**. ドラッグ、モデルのトレーニングを実験キャンバスにアウト項目。Drag the Train Model item out in to the Experiment canvas. キャンバスは同じになりますの下。Your canvas should look the same as the below.

    Machine Learning Studio:実験

  8. 左下にあるデータの分割項目への接続をドラッグして、右を上位モデルのトレーニング項目。From the bottom left of the Split Data item drag a connection to the top right of the Train Model item. アルゴリズムのトレーニングにモデルのトレーニングによってデータセットから最初の 70% の分割が使用されます。The first 70% split from the dataset will be used by the Train Model to train the algorithm.

    Machine Learning Studio:実験

  9. 選択、モデルのトレーニング項目と、キャンバスで、プロパティ(ブラウザーのウィンドウの右側にある) [パネル] をクリックして、列セレクターの起動ボタンをクリックします。Select the Train Model item on the canvas, and in the Properties panel (on the right-hand side of your browser window) click the Launch column selector button.

  10. テキスト ボックスに「製品しキーを押しますEnter製品予測をトレーニングする列として設定されます。In the text box type product and then press Enter, product will be set as a column to train predictions. 次に、をクリックして、ティック下部右上隅にある選択ダイアログ ボックスを閉じます。Following this, click on the tick in the bottom-right corner to close the selection dialog.

    Machine Learning Studio:実験

  11. トレーニングする、多クラス ロジスティック回帰最も販売を予測するアルゴリズム製品曜日と日付の 1 時間に基づきます。You are going to train a Multiclass Logistic Regression algorithm to predict the most sold product based on the hour of the day and the date. ただし、Azure Machine Learning studio で提供されるさまざまなアルゴリズムの詳細については、このドキュメントの範囲を超えては次のようにから詳細情報を調べることができます、 Machine Learning アルゴリズム チート シートIt is beyond the scope of this document to explain the details of the different algorithms provided by the Azure Machine Learning studio, though, you can find out more from the Machine Learning Algorithm Cheat Sheet

  12. 左側の実験項目パネルでは、次のように展開します **Machine Learning > モデルの初期化 > *分類***、およびドラッグ、 多クラス ロジスティック回帰。 を実験キャンバス上に項目。From the experiment items panel on the left, expand **Machine Learning > Initialize Model > *Classification***, and drag the Multiclass Logistic Regression item on to the experiment canvas.

  13. 一番下から、出力を接続、多クラス ロジスティック回帰、左の入力に、モデルのトレーニング項目。Connect the output, from the bottom of the Multiclass Logistic Regression, to the top-left input of the Train Model item.

    Machine Learning Studio:実験

  14. 左側のパネルの 実験項目の一覧で展開 *Machine Learning > *スコア**、ドラッグ、 モデルのスコア付け をキャンバス上に項目。In list of experiment items in the panel on the left, expand *Machine Learning > *Score**, and drag the Score Model item on to the canvas.

  15. 一番下から、出力を接続、モデルのトレーニング、左の入力に、モデルのスコア付けします。Connect the output, from the bottom of the Train Model, to the top-left input of the Score Model.

  16. 右下の出力を接続 データの分割 、右の入力に、 モデルのスコア付け 項目します。Connect the bottom-right output from Split Data, to the top-right input of the Score Model item.

    Machine Learning Studio:実験

  17. 一覧で実験、左側のパネルでアイテムの展開 **Machine Learning > *評価***、およびドラッグ、 モデルの評価 をキャンバスに項目。In the list of Experiment items in the panel on the left, expand **Machine Learning > *Evaluate***, and drag the Evaluate Model item onto the canvas.

  18. 出力を接続、モデルのスコア付けの左の入力に、モデルの評価します。Connect the output from the Score Model to the top-left input of the Evaluate Model.

    Machine Learning Studio:実験

  19. 最初の Machine Learning の実験を構築したとします。You have built your first Machine Learning Experiment. 保存し、実験を実行できます。You can now save and run the experiment. ページの下部にあるメニューをクリックして、保存ボタンをクリックして、実験を保存実行実験の先頭にします。In the menu at the bottom of the page, click on the Save button to save your experiment and then click Run to the start the experiment.

    Machine Learning Studio:実験

  20. 確認できます、状態実験キャンバスの上部右にあるのです。You can see the status of the experiment in the top-right of the canvas. 実験を完了するまで数分を待機します。Wait a few moments for the experiment to finish.

    ビッグ (実際) のデータセットがある場合は、実験に実行する時間がかかる場合があります、高くなります。If you have a big (real world) dataset it is likely that the experiment could take hours to run.

    Machine Learning Studio:実験

  21. 右クリックして、モデルの評価キャンバスでは、コンテキスト メニュー ホバーからマウスで項目評価の結果をを選択し、視覚化します。Right click on the Evaluate Model item in the canvas and from the context menu hover the mouse over Evaluation Results, then select Visualize.

    Machine Learning Studio:実験

  22. 実際の結果と予測結果を表示、評価結果が表示されます。The evaluation results will be displayed showing the predicted outcomes versus the actual outcomes. これは、モデルの評価が以前では、分割された元のデータセットの 30% を使用します。This uses the 30% of the original dataset, that was split earlier, for evaluating the model. 結果は優れた、理想的には必要があります最上位の番号各行の列に含められる、選択された項目を確認できます。You can see the results are not great, ideally you would have the highest number in each row be the highlighted item in the columns.

    Machine Learning Studio:実験

  23. 閉じる、結果します。Close the Results.

  24. として公開する必要がある、新しくトレーニングされた機械学習モデルを使用する、 Web サービスします。To use your newly trained Machine Learning model you need to expose it as a Web Service. これを行うには、をクリックして、 Web サービスの設定メニューで、ページの下部にあるメニュー項目をクリックします予測 Web サービスします。To do this, click on the Set Up Web Service menu item in the menu at the bottom of the page, and click on Predictive Web Service.

    Machine Learning Studio:実験

  25. 新しいタブが作成され、モデルのトレーニングは、新しい web サービスを作成するマージします。A new tab will be created, and the train model merged to create the new web service.

  26. ページの下部にあるメニューでクリックして保存、順にクリックします実行します。In the menu at the bottom of the page click Save, then click Run. 実験キャンバスの右上隅にある更新の状態が表示されます。You will see the status updated in the top-right corner of the experiment canvas.

    Machine Learning Studio:実験

  27. 実行が完了すると、 Web サービスのデプロイボタンがページの下部に表示されます。Once it has finished running, a Deploy Web Service button will appear at the bottom of the page. Web サービスをデプロイする準備が整いました。You are ready to deploy the web service. クリックしてWeb サービスのデプロイページの下部にあるメニューでは (クラシック)。Click Deploy Web Service (Classic) in the menu at the bottom of the page.

    Machine Learning Studio:実験

    お使いのブラウザーが行う必要がありますポップアップを許可する要求があります許可キーを押す必要がありますが、 Web サービスのデプロイ、もう一度デプロイ ページが表示されない場合。Your browser may prompt to allow a pop-up, which you should allow, though you may need to press Deploy Web Service again, if the deploy page does not show.

  28. 実験を作成した後にリダイレクトされます、ダッシュ ボードする必要があるページ、 API キーが表示されます。Once the Experiment has been created you will be redirected to a Dashboard page where you will have your API Key displayed. 今のところ、メモ帳にコピー、必要になるコードに非常に早くします。Copy it into a notepad for the moment, you will need it in your code very soon. をクリックすると、API キーをメモ、要求/応答ボタン、既定のエンドポイントセクション、キーの下にあります。Once you have noted your API Key, click on the REQUEST/RESPONSE button in the Default Endpoint section underneath the Key.

    Machine Learning Studio:実験

    注意

    このページで [テスト] をクリックした場合は、入力データを入力し、出力を表示することができます。If you click Test in this page, you will be able to enter input data and view the output. 入力、時間します。Enter the day and hour. ままに、製品空白エントリ。Leave the product entry blank. をクリックし、確認ボタンをクリックします。Then click the Confirm button. 選択されている各製品の尤度を表す JSON は、ページの下部にある出力が表示されます。The output on the bottom of the page will show the JSON representing the likelihood of each product being the choice.

  29. 新しい web ページが指示と、Machine Learning Studio で必要な要求の構造について例をいくつかの表示を開きます。A new web page will open up, displaying the instructions and some examples about the Request structure required by the Machine Learning Studio. コピー、要求 URIメモ帳に、このページに表示されます。Copy the Request URI displayed in this page, into your notepad.

    Machine Learning Studio:実験

Machine learning の日、年の通算日の時間に関連付け、購入履歴データに基づいて、販売できる可能性が最も高い製品を提供するシステムをビルドが完了しました。You have now built a machine learning system that provides the most likely product to be sold based on historical purchasing data, correlated with the time of the day and day of the year.

Web サービスを呼び出すには、サービス エンドポイントとサービスの API キーの URL を必要があります。To call the web service, you will need the URL for the service endpoint and an API Key for the service. をクリックして、 Consume タブで、上部のメニューから。Click on the Consume tab, from the top menu.

消費情報 ページをコードから web サービスを呼び出す必要があります情報が表示されます。The Consumption Info page will display the information you will need to call the web service from your code. コピーを作成、主キー要求-応答URL。Take a copy of the Primary Key and the Request-Response URL. [次へ] の章で必要になります。You will need these in the next Chapter.

第 5 章 - Unity プロジェクトの設定Chapter 5 - Setting up the Unity Project

設定し、混合 Reality イマーシブ ヘッドセットをテストします。Set up and test your Mixed Reality Immersive Headset.

注意

いないこのコースのモーションのコント ローラーが必要です。You will not require Motion Controllers for this course. イマーシブ ヘッドセットの設定をサポートする場合をクリックしてくださいここします。If you need support setting up the Immersive Headset, please click HERE.

  1. 開いているUnityという新しい Unity プロジェクトを作成およびMR_MachineLearning します。Open Unity and create a new Unity Project called MR_MachineLearning. 必ず、プロジェクトの種類に設定されて3Dします。Make sure the project type is set to 3D.

  2. 既定値を確認する必要が開いている Unity、 スクリプト エディター に設定されている Visual Studio します。With Unity open, it is worth checking the default Script Editor is set to Visual Studio. 移動して 編集 > 設定 し、新しいウィンドウに移動 外部ツール します。Go to Edit > Preferences and then from the new window, navigate to External Tools. 変更 External Script EditorVisual Studio 2017 します。Change External Script Editor to Visual Studio 2017. 閉じる、設定ウィンドウ。Close the Preferences window.

  3. 次に移動 ファイル > Build Settings にプラットフォームを切り替えるとユニバーサル Windows プラットフォーム、 をクリックしてスイッチ プラットフォームボタンをクリックします。Next, go to File > Build Settings and switch the platform to Universal Windows Platform, by clicking on the Switch Platform button.

  4. 確認します。Also make sure that:

    1. デバイスを対象にに設定されている任意のデバイスします。Target Device is set to Any Device.

      Microsoft HoloLens、設定ターゲット デバイスHoloLensします。For the Microsoft HoloLens, set Target Device to HoloLens.

    2. ビルドの種類に設定されているD3Dします。Build Type is set to D3D.

    3. SDKに設定されているインストールされている最新します。SDK is set to Latest installed.

    4. Visual Studio バージョンに設定されているインストールされている最新します。Visual Studio Version is set to Latest installed.

    5. ビルドおよび実行に設定されているローカル マシンします。Build and Run is set to Local Machine.

    6. 設定する方法について気にかけないようにシーン、現時点で、これらは後で説明します。Do not worry about setting up Scenes right now, as these are provided later.

    7. 残りの設定は、ここでは、既定値として残しておく必要があります。The remaining settings should be left as default for now.

      Unity プロジェクトの設定

  5. Build Settingsウィンドウのプレーヤー設定ボタン、領域に関連するパネルが開き、インスペクターが配置されています。In the Build Settings window, click on the Player Settings button, this will open the related panel in the space where the Inspector is located.

  6. このパネルは、いくつかの設定を確認する必要があります。In this panel, a few settings need to be verified:

    1. その他の設定 タブ。In the Other Settings tab:

      1. Scripting ランタイム バージョンべき試験的(.NET 4.6 Equivalent)Scripting Runtime Version should be Experimental (.NET 4.6 Equivalent)

      2. バックエンドの scriptingべき .NETScripting Backend should be .NET

      3. API の互換性レベルべき .NET 4.6API Compatibility Level should be .NET 4.6

        Unity プロジェクトの設定

    2. 内で、発行の設定] タブの [機能、確認してください。Within the Publishing Settings tab, under Capabilities, check:

      • InternetClientInternetClient

        Unity プロジェクトの設定

    3. パネル、下の方にXR 設定(次に示します発行設定)、ティック仮想現実サポート、ことを確認、 Windows Mixed Reality SDKが追加されますFurther down the panel, in XR Settings (found below Publish Settings), tick Virtual Reality Supported, make sure the Windows Mixed Reality SDK is added

      Unity プロジェクトの設定

  7. 戻りBuild Settings Unity C# プロジェクトが不要になったグレー; これの横にあるチェック ボックスをオンにします。Back in Build Settings Unity C# Projects is no longer greyed out; tick the checkbox next to this.

  8. ビルド設定ウィンドウを閉じます。Close the Build Settings window.

  9. プロジェクトを保存 (ファイル > プロジェクトを保存)。Save your Project (FILE > SAVE PROJECT).

第 6 章 – MLProducts Unity パッケージをインポートします。Chapter 6 - Importing the MLProducts Unity Package

このコースでは、という名前の Unity アセット パッケージをダウンロードする必要があります Azure-MR-307.unitypackageします。For this course, you will need to download a Unity Asset Package called Azure-MR-307.unitypackage. このパッケージは、すべてのオブジェクトを使用した、シーンを構築済みので、すべての作業に集中できます。This package comes complete with a scene, with all objects in that prebuilt, so you can focus on getting it all working. ShelfKeeperスクリプトを提供すると、ただしのみシーン セットアップ構造の目的で、パブリック変数が保持されます。The ShelfKeeper script is provided, though only holds the public variables, for the purpose of scene setup structure. その他のすべてのセクションを実行する必要があります。You will need to do all other sections.

このパッケージをインポートするには。To import this package:

  1. 前 Unity ダッシュ ボード をクリックして資産画面の上部にあるメニューでクリックしてImport Package、カスタム パッケージします。With the Unity dashboard in front of you, click on Assets in the menu at the top of the screen, then click on Import Package, Custom Package.

    MLProducts Unity パッケージをインポートします。

  2. ファイル ピッカーを使用して、 Azure-MR-307.unitypackageパッケージ化し、をクリックしてオープンします。Use the file picker to select the Azure-MR-307.unitypackage package and click Open.

  3. この資産のコンポーネントの一覧が表示されます。A list of components for this asset will be displayed to you. クリックして、インポートを確認します。インポートします。Confirm the import by clicking Import.

    MLProducts Unity パッケージをインポートします。

  4. インポートが完了、いくつかの新しいフォルダーが、Unity で登場したことがわかりますがプロジェクト パネルします。Once it has finished importing, you will notice that some new folders have appeared in your Unity Project Panel. これらは、3 D モデルとそれぞれの資料では、事前に作成されたシーンの部分です。Those are the 3D models and the respective materials that are part of the pre-made scene you will work on. このコースでは、コードの大部分を記述します。You will write the majority of the code in this course.

    MLProducts Unity パッケージをインポートします。

  5. 内で、プロジェクト パネルフォルダーをクリックして、シーンフォルダー、double、シーン内をクリックする (と呼ばれるMR_MachineLearningScene)。Within the Project Panel folder, click on the Scenes folder and double click on the scene inside (called MR_MachineLearningScene). シーンが開きます (下図を参照してください)。The scene will open (see image below). 赤い菱形が不足している場合は、クリックして、ギズモ上部のボタンの右、ゲーム パネルIf the red diamonds are missing, simply click the Gizmos button, at the top right of the Game Panel.

    MLProducts Unity パッケージをインポートします。

第 7 章 - Unity で Dll を確認Chapter 7 - Checking the DLLs in Unity

(シリアル化と逆シリアル化に使用)、JSON ライブラリの使用を活用して、Newtonsoft DLL で取り込まれたパッケージに実装されています。To leverage the use of JSON libraries (used for serializing and deserializing), a Newtonsoft DLL has been implemented with the package you brought in. ライブラリは、(特に問題が発生したコードが動作していない) 場合を確認する必要が、構成を適切にすることが必要です。The library should have the correct configuration, though it is worth checking (particularly if you are having issues with code not working).

次の手順に従います。To do so:

  • Plugins フォルダー内のファイルを Newtonsoft を左クリックを見て、インスペクター パネルします。Left-click on the Newtonsoft file inside the Plugins folder and look at the Inspector panel. 確認Any プラットフォームがオンになっています。Make sure Any Platform is ticked. 移動、 UWP タブも確認してください処理しないがオンになっています。Go to the UWP tab and also ensure Don't process is ticked.

    Unity で、Dll のインポート

8 - 章 ShelfKeeper クラスを作成します。Chapter 8 - Create the ShelfKeeper class

ShelfKeeperクラスは、UI とシーンで製品を制御するメソッドをホストします。The ShelfKeeper class hosts methods that control the UI and products spawned in the scene.

インポート元のパッケージの一部としてが与えられているこのクラスは、不完全な場合。As part of the imported package, you will have been given this class, though it is incomplete. そのクラスの所要時間はようになりました。It is now time to complete that class:

  1. ダブルクリック、 ShelfKeeperスクリプト内で、スクリプトフォルダー、ファイルを開くVisual Studio 2017します。Double click on the ShelfKeeper script, within the Scripts folder, to open it with Visual Studio 2017.

  2. 既存の日付と時刻を設定し、製品を表示するメソッドを持つ次のコードでのスクリプトですべてのコードに置き換えます。Replace all the code existing in the script with the following code, which sets the time and date and has a method to show a product.

    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. 変更を保存することを確認するVisual Studioに戻る前にUnityします。Be sure to save your changes in Visual Studio before returning to Unity.

  4. Unity エディターで戻ることを確認、 ShelfKeeperクラスの下。Back in the Unity Editor, check that the ShelfKeeper class looks like the below:

    ShelfKeeper クラスを作成します。

    重要

    スクリプト参照のターゲットを持たない場合 (つまり (テキスト メッシュ) 日付) から対応するオブジェクトをドラッグするだけ、階層パネル、ターゲット フィールドにします。If your script does not have the reference targets (i.e. Date (Text Mesh)), simply drag the corresponding objects from the Hierarchy Panel, into the target fields. 以下をご覧ください詳細については、必要な場合。See below for explanation, if needed:

    1. 開く、 Spawn ポイント内で配列、 ShelfKeeperをクリックしてコンポーネントのスクリプト。Open the Spawn Point array within the ShelfKeeper component script by left-clicking it. サブ セクションが呼び出された表示サイズ配列のサイズを示します。A sub-section will appear called Size, which indicates the size of the array. 3 の隣にテキスト ボックスにサイズキーを押しますEnter、下にある 3 つのスロットが作成されます。Type 3 into the textbox next to Size and press Enter, and three slots will be created beneath.

    2. 内で、階層展開、時間表示(横にある矢印をクリック) でのオブジェクト。Within the Hierarchy expand the Time Display object (by left-clicking the arrow beside it). 次にをクリックして、 Main Camera内から、階層するように、インスペクターその情報が表示されます。Next click the Main Camera from within the Hierarchy, so that the Inspector shows its information.

    3. 選択、メイン カメラで、階層パネルします。Select the Main Camera in the Hierarchy Panel. ドラッグ、日付時間オブジェクトから、階層パネル日付のテキスト時テキスト内のスロット、インスペクターMain Cameraで、 ShelfKeeperコンポーネント。Drag the Date and Time objects from the Hierarchy Panel to the Date Text and Time Text slots within the Inspector of the Main Camera in the ShelfKeeper component.

    4. ドラッグ、 Spawn ポイントから、階層パネル(下にある、オブジェクト) を3 要素下にあるターゲットの参照、 Spawn ポイント配列を図のようにします。Drag the Spawn Points from the Hierarchy Panel (beneath the Shelf object) to the 3 Element reference targets beneath the Spawn Point array, as shown in the image.

      ShelfKeeper クラスを作成します。

9 - 章 ProductPrediction クラスを作成します。Chapter 9 - Create the ProductPrediction class

次のクラスを作成することには、 ProductPredictionクラス。The next class you are going to create is the ProductPrediction class.

このクラスは、責任を負います。This class is responsible for:

  • クエリを実行する、 Machine Learning サービスインスタンス、現在の日付と時刻を提供します。Querying the Machine Learning Service instance, providing the current date and time.

  • 使用可能なデータには、JSON 応答を逆シリアル化します。Deserializing the JSON response into usable data.

  • 推奨される 3 つの製品を取得する、データを解釈します。Interpreting the data, retrieving the 3 recommended products.

  • 呼び出す、 ShelfKeeperクラス、シーン内のデータを表示するメソッド。Calling the ShelfKeeper class methods to display the data in the Scene.

このクラスを作成します。To create this class:

  1. 移動して、スクリプトフォルダーで、プロジェクト パネルします。Go to the Scripts folder, in the Project Panel.

  2. フォルダー内を右クリックして作成 > C#スクリプトします。Right-click inside the folder, Create > C# Script. スクリプトを呼び出すProductPredictionします。Call the script ProductPrediction.

  3. 新しいをダブルクリックします。 ProductPredictionスクリプト ファイルを開くVisual Studio 2017します。Double click on the new ProductPrediction script to open it with Visual Studio 2017.

  4. 場合、ファイル変更の検出ダイアログ ポップアップ、 をクリック *ソリューションの再読み込みします。If the File Modification Detected dialog pops up, click *Reload Solution.

  5. ProductPrediction クラスの先頭に次の名前空間を追加します。Add the following namespaces to the top of the ProductPrediction class:

    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. 内で、 ProductPredictionクラスは、多数の入れ子になったクラスの構成は次の 2 つのオブジェクトを挿入します。Inside the ProductPrediction class insert the following two objects which are composed of a number of nested classes. これらのクラスは、Machine Learning サービスの JSON を逆シリアル化およびシリアル化に使用されます。These classes are used to serialize and deserialize the JSON for the Machine Learning Service.

        /// <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. (その JSON では、コードは、以下の他のすべてのコードとの間の方法は、スクリプトの下部に関連する) は、前のコードの上、次の変数を追加します。Then add the following variables above the previous code (so that the JSON related code is at the bottom of the script, below all other code, and out of the way):

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

    重要

    挿入することを確認、主キー要求-応答エンドポイント、マシン ラーニング ポータルでの変数をここにします。Make sure to insert the primary key and request-response endpoint, from the Machine Learning Portal, into the variables here. イメージの下には、場所が取得したキーとエンドポイントを表示します。The below images show where you would have taken the key and endpoint from.

    Machine Learning Studio:実験

    Machine Learning Studio:実験

  8. このコード内で挿入、 Start() メソッド。Insert this code within the Start() method. Start() クラス初期化メソッドが呼び出されます。The Start() method is called when the class initializes:

        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. Windows から日付と時刻を収集し、Machine Learning の実験は、テーブルに格納されたデータを比較に使用できる形式に変換するメソッドを次に示します。The following is the method that collects the date and time from Windows and converts it into a format that our Machine Learning Experiment can use to compare with the data stored in the table.

        /// <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. できます削除Update() メソッドのため、このクラスは使用されません。You can delete the Update() method since this class will not use it.

  11. 現在の日付と時刻を Machine Learning のエンドポイントと通信、JSON 形式で応答を受信する次のメソッドを追加します。Add the following method which will communicate the current date and time to the Machine Learning endpoint and receive a response in JSON format.

        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");
    
            // Serialise 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. JSON の応答を逆シリアル化およびを逆シリアル化の結果との通信を担当する次のメソッドを追加、 ShelfKeeperクラス。Add the following method, which is responsible for deserializing the JSON response, and communicating the result of the deserialization to the ShelfKeeper class. この結果は、現在の日付と時刻にほとんどの販売を予測する 3 つの項目の名前になります。This result will be the names of the three items predicted to sell the most at current date and time. 次のコードを挿入、 ProductPrediction前のメソッドの下のクラス。Insert the code below into the ProductPrediction class, below the previous method.

        /// <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. 保存Visual Studioに戻るUnityします。Save Visual Studio and head back to Unity.

  14. ドラッグ、 ProductPredictionクラスからのスクリプト、スクリプトフォルダーに、 Main Cameraオブジェクト。Drag the ProductPrediction class script from the Script folder, onto the Main Camera object.

  15. シーンとプロジェクトを保存ファイル > Save Scene / ファイル > プロジェクトを保存します。Save your scene and project File > Save Scene / File > Save Project.

第 10 章 – UWP ソリューションのビルドChapter 10 - Build the UWP Solution

今度は UWP ソリューションでプロジェクトをビルドするには、スタンドアロン アプリケーションとして実行できるようにします。It is now time to build your project as a UWP solution, so that it can run as a standalone application.

作成する方法。To Build:

  1. 現在のシーンを保存 をクリックしてファイル 保存シーンします。Save the current scene by clicking on File Save Scenes.

  2. 移動してファイル ビルド設定Go to File Build Settings

  3. チェック ボックスと呼ばれるUnity C#プロジェクト(これは重要なビルドが完了した後に、クラスを編集することを許可することがあるため)。Check the box called Unity C# Projects (this is important because it will allow you to edit the classes after build is completed).

  4. をクリックして開くシーンを追加Click on Add Open Scenes,

  5. [Build] をクリックします。Click Build.

    UWP のソリューションを構築します。

  6. ソリューションをビルドするフォルダーを選択するように促されます。You will be prompted to select the folder where you want to build the Solution.

  7. 作成、ビルドフォルダーとそのフォルダー内には、任意の適切な名前を別のフォルダーを作成します。Create a BUILDS folder and within that folder create another folder with an appropriate name of your choice.

  8. 新しいフォルダーをクリックし、クリックしてフォルダーの選択の場所にビルドを開始します。Click your new folder and then click Select Folder, to begin the build at that location.

    UWP のソリューションを構築します。

    UWP のソリューションを構築します。

  9. 1 回 Unity には、(少し時間がかかる場合があります) ビルドが完了したが開き、ファイル エクスプ ローラービルドの位置にあるウィンドウ (上の windows では、常に表示されないの新しい追加の通知をタスク バーを確認ウィンドウ)。Once Unity has finished building (it might take some time), it will open a File Explorer window at the location of your build (check your task bar, as it may not always appear above your windows, but will notify you of the addition of a new window).

章 11 - アプリケーションをデプロイします。Chapter 11 - Deploy your Application

アプリケーションを配置します。To deploy your application:

  1. 新しい Unity ビルドに移動します (、アプリフォルダー) とソリューション ファイルを開くとVisual Studioします。Navigate to your new Unity build (the App folder) and open the solution file with Visual Studio.

  2. Visual Studio を開き、NuGet パッケージの復元、MachineLearningLab_Build ソリューション、ソリューション エクスプ ローラーを (Visual Studio の右側にあります) を右クリックし、NuGet パッケージの復元を行うことが可能にする必要があります。With Visual Studio open, you need to Restore NuGet Packages, which can be done through right-clicking your MachineLearningLab_Build solution, from the Solution Explorer (found to the right of Visual Studio), and then clicking Restore NuGet Packages:

    NuGet パッケージを追加します。

  3. ソリューション構成の選択でデバッグします。In the Solution Configuration select Debug.

  4. ソリューション プラットフォーム で選択x86ローカル マシンします。In the Solution Platform, select x86, Local Machine.

    Microsoft HoloLens にすることがあります方が簡単なこれを設定するリモート マシン、するは、コンピューターにテザリングされたしないようにします。For the Microsoft HoloLens, you may find it easier to set this to Remote Machine, so that you are not tethered to your computer. ただし、次の操作も必要があります。Though, you will need to also do the following:

    • 把握、 IP アドレス内では、HoloLens の設定 > ネットワークとインターネット > Wi-fi > 詳細オプション;、IPv4 では、アドレスを使用する必要があります。Know the IP Address of your HoloLens, which can be found within the Settings > Network & Internet > Wi-Fi > Advanced Options; the IPv4 is the address you should use.
    • 確認開発者モード; で見つかった設定 > 更新とセキュリティ > 開発者向けします。Ensure Developer Mode is On; found in Settings > Update & Security > For developers.

    NuGet パッケージを追加します。

  5. 移動してビルド メニュー をクリックソリューションの配置を PC にアプリケーションをサイドローディングします。Go to Build menu and click on Deploy Solution to sideload the application to your PC.

  6. アプリが起動する準備ができて、インストールされているアプリの一覧に表示されます。Your App should now appear in the list of installed apps, ready to be launched.

複合現実のアプリケーションを実行するときに Unity シーンに設定されていたベンチは表示され、初期化、Azure 内で設定したデータのフェッチされます。When you run the Mixed Reality application, you will see the bench that was set up in your Unity scene, and from initialization, the data you set up within Azure will be fetched. データは、アプリケーション内に逆シリアル化して、現在の日付と時刻の上位 3 つの結果を視覚的に、3 つのモデル、ベンチで提供されます。The data will be deserialized within your application, and the three top results for your current date and time will be provided visually, as three models on the bench.

完成した Machine Learning アプリケーションYour finished Machine Learning application

これで、データの予測を作成し、シーンに表示する Azure Machine Learning を利用している mixed reality アプリを構築します。Congratulations, you built a mixed reality app that leverages the Azure Machine Learning to make data predictions and display it on your scene.

NuGet パッケージを追加します。

演習Exercise

手順 1Exercise 1

実験で、アプリケーションの並べ替え順序あり、このデータ可能性のある役に立つことも、棚に表示される下部にある 3 つの予測が。Experiment with the sort order of your application and have the three bottom predictions appear on the shelf, as this data would potentially be useful also.

手順 2Exercise 2

使用してAzure Tables気象情報を含む新しいテーブルを設定して、データを使用して新しい実験を作成します。Using Azure Tables populate a new table with weather information and create a new experiment using the data.