適用対象: IoT Edge 1.1
重要
IoT Edge 1.1 のサポート終了日は、2022 年 12 月 13 日でした。 この製品、サービス、テクノロジ、または API がどのようにサポートされているかについては、 Microsoft 製品ライフサイクル を確認してください。 最新バージョンの IoT Edge への更新の詳細については、「 IoT Edge の更新」を参照してください。
この記事では、次のタスクを実行します。
- Azure Machine Learning Studio を使用して機械学習モデルをトレーニングします。
- トレーニング済みのモデルをコンテナー イメージとしてパッケージ化します。
- コンテナー イメージを Azure IoT Edge モジュールとしてデプロイします。
Machine Learning Studio は、機械学習モデルの実験、トレーニング、デプロイに使用される基本的なブロックです。
この記事の手順は、通常、データ サイエンティストによって実行される場合があります。
チュートリアルのこのセクションでは、次の方法について説明します。
- Azure Machine Learning ワークスペースに Jupyter Notebook を作成して、機械学習モデルをトレーニングします。
- トレーニング済みの機械学習モデルをコンテナー化します。
- コンテナー化された機械学習モデルから IoT Edge モジュールを作成します。
前提条件
この記事は、IoT Edge での Machine Learning の使用に関するチュートリアルのシリーズの一部です。 シリーズの各記事は、前の記事の作業に基づいています。 この記事に直接アクセスした場合は、シリーズの最初の記事 を参照してください。
Azure Machine Learning を設定する
Machine Learning Studio を使用して、2 つの Jupyter ノートブックとサポート ファイルをホストします。 ここでは、Machine Learning プロジェクトを作成して構成します。 Jupyter または Machine Learning Studio を使用していない場合は、2 つの入門ドキュメントを次に示します。
- Jupyter Notebook: Visual Studio Code での Jupyter ノートブックの操作
- Azure Machine Learning: Jupyter Notebook で Azure Machine Learning を始めよう
注
サービスを設定すると、任意のコンピューターから Machine Learning にアクセスできるようになります。 セットアップ中に、必要なすべてのファイルを含む開発 VM を使用する必要があります。
Azure Machine Learning Visual Studio Code 拡張機能をインストールする
開発用 VM 上の Visual Studio Code には、この拡張機能がインストールされている必要があります。 別のインスタンスで実行している場合は、「 Visual Studio Code 拡張機能のセットアップ」の説明に従って拡張機能を再インストールします。
Azure Machine Learning アカウントを作成する
リソースをプロビジョニングし、Azure でワークロードを実行するには、Azure アカウントの資格情報を使用してサインインします。
Visual Studio Code で、メニュー バーから [表示>コマンド パレット ] を選択してコマンド パレットを開きます。
コマンド パレットに
Azure: Sign In
コマンドを入力して、サインイン プロセスを開始します。 指示に従ってサインインを完了します。ワークロードを実行する Machine Learning コンピューティング インスタンスを作成します。 コマンド パレットで、コマンド
Azure ML: Create Compute
を入力します。Azure サブスクリプションを選択します。
[ + 新しい Azure ML ワークスペースの作成] を選択し、 turbofandemo という名前を入力します。
このデモで使用しているリソース グループを選択します。
Visual Studio Code ウィンドウの右下隅に、ワークスペースの作成の進行状況が表示されます。 ワークスペースの作成: turobofandemo。 この手順には、1 ~ 2 分かかる場合があります。
ワークスペースが正常に作成されるまで待ちます。 Azure ML ワークスペース turbofandemo が作成されたと表示されます。
Jupyter Notebook ファイルをアップロードする
サンプル ノートブック ファイルを新しい Machine Learning ワークスペースにアップロードします。
ml.azure.com に移動してサインインします。
Microsoft ディレクトリ、Azure サブスクリプション、および新しく作成した Machine Learning ワークスペースを選択します。
Machine Learning ワークスペースにサインインしたら、左側のメニューを使用して Notebooks セクションに移動します。
[ マイ ファイル ] タブを選択します。
[ アップロード] (上矢印アイコン) を選択します。
C:\source\IoTEdgeAndMlSample\AzureNotebooks に移動します。 リスト内のすべてのファイルを選択し、[ 開く] を選択します。
[これらのファイルの内容を信頼する ] チェック ボックスをオンにします。
を選択してアップロードを開始します。 次に、プロセスの完了後に [完了] を選択します。
Jupyter Notebook ファイル
Machine Learning ワークスペースにアップロードしたファイルを確認しましょう。 チュートリアルのこの部分のアクティビティは、いくつかのサポート ファイルを使用する 2 つのノートブック ファイルにまたがっています。
01-turbofan_regression.ipynb: このノートブックでは、Machine Learning ワークスペースを使用して機械学習実験を作成して実行します。 大まかに言えば、ノートブックは次の手順を実行します。
- デバイス ハーネスによって生成された Azure Storage アカウントからデータをダウンロードします。
- データを探索して準備し、そのデータを使用して分類子モデルをトレーニングします。
- テスト データセット (Test_FD003.txt) を使用して、実験からモデルを評価します。
- Machine Learning ワークスペースに最適な分類子モデルを発行します。
02-turbofan_deploy_model.ipynb: このノートブックは、前のノートブックで作成されたモデルを取得し、それを使用して、IoT Edge デバイスにデプロイする準備ができているコンテナー イメージを作成します。 ノートブックは、次の手順を実行します。
Test_FD003.txt: このファイルには、トレーニング済みの分類子を検証するときにテスト セットとして使用するデータが含まれています。 このテスト データは、元のコンテストで提供されているとおりに、そのシンプルさのためのテスト セットとして使用することを選択しました。
RUL_FD003.txt: このファイルには、Test_FD003.txt ファイル内の各デバイスの最後のサイクルの残存耐用年数 (RUL) が含まれています。 データの詳細な説明については、C:\source\IoTEdgeAndMlSample\data\Turbofan の readme.txt ファイルと損傷伝播 Modeling.pdf ファイルを参照してください。
Utils.py: このファイルには、データを操作するための Python ユーティリティ関数のセットが含まれています。 最初のノートブックには、関数の詳細な説明が含まれています。
README.md: この readme ファイルでは、ノートブックの使用方法について説明します。
Jupyter Notebook を実行する
ワークスペースが作成されたので、ノートブックを実行できます。
[ マイ ファイル ] ページで、 01-turbofan_regression.ipynb を選択します。
ノートブックが 信頼されていないと表示されている場合は、ノートブックの右上隅にある [信頼されていない ] ウィジェットを選択します。 ダイアログ ボックスが表示されたら、[ 信頼] を選択します。
最適な結果を得るには、各セルのドキュメントを読み、個別に実行します。 ツール バーの [ 実行 ] を選択します。 後になって、複数のセルを実行することが有用であることがわかるでしょう。 アップグレードと非推奨の警告は無視できます。
セルが実行中の場合、角かっこ ([*]) の間にアスタリスクが表示されます。 セルの操作が完了すると、アスタリスクが数値に置き換えられ、関連する出力が表示されることがあります。 ノートブック内のセルは順番にビルドされ、一度に実行できるセルは 1 つだけです。
[セル] メニューから実行オプションを使用することもできます。 Ctrl + Enter キーを押してセルを実行し、Shift + Enter キーを押してセルを実行し、次のセルに進みます。
ヒント
一貫性のあるセル操作を行う場合は、ブラウザーの複数のタブから同じノートブックを実行しないようにします。
グローバル プロパティの設定 の手順に従うセルに、Azure サブスクリプション、設定、およびリソースの値を入力します。 次に、セルを実行します。
ワークスペースの詳細の前のセルで、実行後に、認証のためにサインインするように指示するリンクを探します。
リンクを開き、指定したコードを入力します。 このサインイン手順では、Microsoft Azure クロスプラットフォーム コマンド ライン インターフェイスを使用して、Jupyter Notebook を認証して Azure リソースにアクセスします。
結果を探索の前のセルで、実行 ID の値をコピーし、実行を再構成の後のセルで実行 ID に貼り付けます。
ノートブックの残りのセルを実行します。
ノートブックを保存し、プロジェクト ページに戻ります。
02-turbofan_deploy_model.ipynb を開き、各セルを実行します。 [ ワークスペースの構成] の後のセルで認証するには、サインインする必要があります。
ノートブックを保存し、プロジェクト ページに戻ります。
成功を確認する
ノートブックが正常に完了したことを確認するには、いくつかの項目が作成されたことを確認します。
Machine Learning ノートブックの [ マイ ファイル ] タブで、[ 更新] を選択します。
次のファイルが作成されたことを確認します。
ファイル 説明 ./aml_config/.azureml/config.json Machine Learning ワークスペースの作成に使用される構成ファイル。 ./aml_config/model_config.json Azure の turbofanDemo Machine Learning ワークスペースにモデルをデプロイする必要がある構成ファイル。 myenv.yml デプロイされた Machine Learning モデルの依存関係に関する情報を提供します。 次の Azure リソースが作成されたことを確認します。 一部のリソース名にはランダムな文字が追加されます。
Azure リソース 名前 Azure Machine Learning ワークスペース turborfanDemo Azure Container Registry(アジュール コンテナ レジストリ) turbofandemoxxxxxxxx Application Insights ターボファンインサイトxxxxxxxx Azure Key Vault turbofankeyvaultbxxxxxxxx Azure Storage turbofanstoragexxxxxxxxx
デバッグ
値を表示する print()
コマンドなど、デバッグ用の Python ステートメントをノートブックに挿入できます。 定義されていない変数またはオブジェクトが表示される場合は、最初に宣言またはインスタンス化されたセルを実行します。
ノートブックをやり直す必要がある場合は、以前に作成したファイルと Azure リソースを削除する必要がある場合があります。
リソースをクリーンアップする
このチュートリアルは、各記事が前の記事で行われた作業に基づいて構築されるセットの一部です。 最後のチュートリアルが完了するまで、リソースのクリーンアップを待ちます。
次のステップ
この記事では、Machine Learning Studio で実行されている 2 つの Jupyter ノートブックを使用して、turbofan デバイスのデータを使用して次の操作を行いました。
- RUL 分類子をトレーニングします。
- 分類子をモデルとして保存します。
- コンテナー イメージを作成します。
- イメージを Web サービスとしてデプロイしてテストします。
次の記事に進み、IoT Edge デバイスを作成します。