このガイドでは、ニューラル ネットワーク モデルをトレーニングして、ML.NET Model Builder を使用して食品の画像を分類し、モデルを ONNX 形式にエクスポートし、Windows デバイスでローカルに実行されている Windows Machine Learning アプリケーションにモデルをデプロイする方法について説明します。 機械学習に関する以前の専門知識は必要ありません。プロセスを順を追って説明します。
モデル ビルダーを使用してモデルを構築およびトレーニングする方法 ML.NET 学習したい場合は、「 モデルのトレーニング」に進むことができます。
モデルがあり、最初から WinML アプリを作成する方法を学習する場合は、 完全な WinML アプリチュートリアルに移動します。
WinML アプリの定義済みソリューションを取得する場合は、 ソリューション ファイルを 複製してすぐにテストできます。
シナリオ
このチュートリアルでは、Windows デバイスで実行される機械学習食品分類アプリケーションを作成します。 モデルは、食品の画像を分類する特定の種類のパターンを認識するようにトレーニングされ、画像が与えられると、その分類の分類タグと関連するパーセンテージ信頼値が返されます。
モデル トレーニングの前提条件
モデルをビルドしてトレーニングするには、Visual Studio で ML.NET Model Buider を使用します。
- ML.NET モデル ビルダーを使用するには、Visual Studio 2019 16.6.1 以降が必要です。 Visual Studio はここで入手できます。
- Azure ML ワークスペース内で ML.NET Model Builder を使用してモデルをトレーニングするには、Azure アカウントが必要です。 Azure を初めて使用する場合は、 Azure 無料アカウントにサインアップできます。
注
Azure サインアップ オプションと Azure 無料アカウントの詳細については、以下をご覧ください。 「Azure アカウントを作成する」を参照してください。
ML.NET モデル ビルダーは直感的なグラフィカル Visual Studio 拡張機能で、カスタム機械学習モデルの構築、トレーニング、デプロイに使用されます。 自動機械学習 (AutoML) を使用して、さまざまな機械学習アルゴリズムと設定を調べて、シナリオに最適なものを見つけるのに役立ちます。
ML.NET Model Builder は、.NET ワークロードのいずれかをインストールするときに、Visual Studio バージョン 16.6.1 以降に付属しています。 Visual Studio をダウンロードまたは変更するときに、ML.NET モデル ビルダー コンポーネントがインストーラーでチェックされていることを確認します。 VS に ML.NET モデル ビルダー コンポーネントがあるかどうかを確認するには、[拡張機能] に移動し、[拡張機能の管理] を選択します。 検索バーに「Model Builder」と入力して、拡張機能の結果を確認します。
ML.NET モデル ビルダーは現在プレビュー機能です。 そのため、このツールを使用するには、Visual Studio で [ツール] > [オプション] > [環境] > プレビュー機能に移動し、モデル ビルダー ML.NET 有効にする必要があります。
注
ML.NET モデル ビルダーと、それがサポートするさまざまなシナリオについて詳しく学習することに興味がありますか? モデル ビルダーのドキュメントを確認してください。
Windows ML アプリの展開の前提条件
Widows ML アプリを作成してデプロイするには、次のものが必要です。
- Windows 10 バージョン 1809 (ビルド 17763) 以降。 [実行] コマンド
winver
を使用して(Windows logo key + R)
を実行することで、ビルドのバージョン番号を確認できます。 - ビルド 17763 以降の Windows SDK。 SDK はここで入手できます。
- Visual Studio 2019 バージョン 16.6.1 以降。 Visual Studio はここで入手できます。
- Windows ML Code Generator (mlgen) Visual Studio 拡張機能。 VS 2019 用にダウンロードします。
- UWP アプリを作成する場合は、Visual Studio でユニバーサル Windows プラットフォーム開発ワークロードを有効にする必要があります。
- PC で開発者モードを有効にする必要もあります
注
Windows ML API は、最新バージョンの Windows 10 (1809 以降) と Windows Server 2019 に組み込まれています。 ターゲット プラットフォームが古いバージョンの Windows の場合は、 WinML アプリを再頒布可能 NuGet パッケージ (Windows 8.1 以降) に移植できます。
データを準備する
機械学習モデルは、既存のデータでトレーニングする必要があります。 このガイドでは、Kaggle Open Datasets の食品画像のデータセットを使用します。 このデータセットは、パブリック ドメイン ライセンスで配布されます。
重要
このデータセットを使用するには、Kaggle サイトを使用する用語と Food-11 データセット自体に付随するライセンス用語に従う必要があります。 Microsoft は、サイトまたはこのデータセットに関して一切の保証または表明を行いません。
データセットには、評価、トレーニング、検証の 3 つの分割があり、11 の主要な食品カテゴリにグループ化された 16643 の食品画像が含まれています。 食品の各カテゴリのデータセット内の画像は個別のフォルダーに配置されるため、モデルのトレーニング プロセスがより便利になります。
データセットはこちらからダウンロード してください。 データセットのサイズは約 1 GB であり、Kaggle Web サイトでアカウントを作成してデータをダウンロードするように求められる場合があることに注意してください。
必要に応じて、関連する画像の他のデータセットを使用することもできます。 少なくとも、最初のトレーニング セットでは、タグごとに少なくとも 30 個の画像を使用することをお勧めします。 また、トレーニング後にモデルをテストするために、いくつかの追加の画像を収集することもできます。
さらに、すべてのトレーニング 画像が次の条件を満たしていることを確認します。
- .jpg、.png、.bmp、または .gif 形式。
- サイズが 6 MB 以下 (予測画像の場合は 4 MB)。
- 最短エッジで 256 ピクセル以下。これより短い画像は、Custom Vision Service によって自動的にスケールアップされます。
次のステップ
前提条件を整理し、データセットを準備したので、WinML モデルの作成に進むことができます。 次のパートでは、ML.NET モデル ビルダーを使用して、分類モデルを作成およびトレーニングします。