Path: blob/master/site/ja/hub/tutorials/cropnet_on_device.ipynb
25118 views
Copyright 2021 The TensorFlow Hub Authors.
Licensed under the Apache License, Version 2.0 (the "License");
植物病害検出のための微調整モデル
このノートブックは、TFDS のデータセットまたは独自の作物病害検出データセットで TensorFlow Hub の CropNet モデルを微調整する方法を説明しています。
ここでは次を行います。
TFDS キャッサバデータセットまたは独自データをロードする
未知の(負の)例でデータを強化して、より堅牢なモデルを取得する
データに画像拡張を適用する
TF Hub から CropNet モデルを読み込んで微調整する
TFLite モデルをエクスポートし、タスクライブラリ、MLKit、または TFLite を使用してアプリに直接デプロイできるようにする
インポートと依存関係
開始する前に、Model Maker や最新バージョンの TensorFlow データセットなどの必要な依存関係のいくつかをインストールする必要があります。
TFDS データセットをロードして微調整する
TFDS から公開されているキャッサバの葉の病害のデータセットを使用してみましょう。
または、独自データを読み込んで微調整する
TFDS データセットを使用する代わりに、独自のデータでトレーニングすることもできます。このコードスニペットは、独自のカスタムデータセットをロードする方法を示しています。サポートされているデータの構造については、このリンクをご覧ください。ここでは、公開されているキャッサバの葉の病害のデータセットを使用した例を示します。
train split からのサンプルを視覚化する
画像サンプルとそのラベルのクラス ID とクラス名を含むデータセットのいくつかの例を見てみましょう。
TFDS データセットから未知の例として使用する画像を追加する
未知の(負の)例をトレーニングデータセットに追加し、それらに新しい未知のクラスラベル番号を割り当てます。目標は、実際に(たとえばフィールドで)使用される際に、予期しないものが見つかった場合に「未知」を予測するオプションを持つモデルを作成することです。
以下に、追加の未知の画像をサンプリングするために使用されるデータセットのリストを示します。多様性を高めるために、3 つの完全に異なるデータセットが含まれています。それらの 1 つは豆の葉の病害のデータセットであるため、モデルはキャッサバ以外の罹病植物にさらされています。
UNKNOWN データセットも TFDS からロードされます。
拡張を適用する
すべての画像に対して、それらをより多様化するために、次の点での変更など、いくつかの拡張を適用します。
明るさ
コントラスト
彩度
色合い
クロップ
これらのタイプの拡張は、モデルを画像入力の変動に対してより堅牢にするのに役立ちます。
拡張を適用するには、Dataset クラスの map
メソッドを使用します。
データを Model Maker に適した形式にラップする
これらのデータセットを Model Maker で使用するには、ImageClassifierDataLoader クラスに含まれている必要があります。
トレーニングを実行する
TensorFlow Hub には、転移学習に利用できる複数のモデルがあります。
ここでは 1 つを選択でき、引き続き他のものを試して、より良い結果を得るようにすることもできます。
さらに多くのモデルを試してみたい場合は、このコレクションからモデルを追加できます。
モデルを微調整するには、Model Maker を使用します。これにより、モデルのトレーニング後にモデルが TFLite に変換されるため、ソリューション全体が簡単になります。
Model Maker は、この変換を可能な限り最良のものにし、後でモデルをデバイスに簡単に展開するために必要なすべての情報を提供します。
モデル仕様は、使用する基本モデルを Model Maker に指示する方法です。
ここでの重要な詳細の 1 つは、 train_whole_model
を設定することで、トレーニング中にベースモデルが微調整されます。これによりプロセスは遅くなりますが、最終的なモデルの精度は高くなります。 shuffle
を設定すると、モデルがランダムにシャッフルされた順序でデータを確認できるようになります。これは、モデル学習のベストプラクティスです。
test split でモデルを評価する
微調整されたモデルをさらによく理解するには、混同行列を分析することをお勧めします。これは、あるクラスが別のクラスとして予測される頻度を示します。
未知のテストデータでモデルを評価する
この評価では、モデルの精度はほぼ 1 であると予想されます。モデルがテストされるすべての画像は通常のデータセットに関連していないため、モデルは「未知の」クラスラベルを予測すると予想されます。
混同行列を印刷します。
モデルを TFLite および SavedModel としてエクスポートする
これで、トレーニング済みモデルを TFLite および SavedModel 形式でエクスポートして、デバイスにデプロイし、TensorFlow で推論に使用できるようになりました。
次のステップ
トレーニングしたばかりのモデルは、モバイルデバイスで使用でき、フィールドに展開することもできます。
モデルをダウンロードするには、colab の左側にある [ファイル] メニューのフォルダーアイコンをクリックして、ダウンロードオプションを選択します。
ここで使用されているものと同じ手法は、ユースケースや他のタイプの画像分類タスクにより適している可能性がある他の植物病害タスクに適用できます。フォローアップして Android アプリにデプロイする場合は、この Android クイックスタートガイド を続行できます。