TensorFlow のワークフローの例

このページでは、Earth Engine での TensorFlow の使用例を示すワークフローの例を示します。詳細については、TensorFlow のページをご覧ください。これらの例は、Earth Engine Python APIColab Notebooks で実行される TensorFlow を使用して記述されています。

料金

DNN を使用したマルチクラス予測

「ディープ」ニューラル ネットワーク(DNN)は、1 つ以上の隠れ層を持つ人工ニューラル ネットワーク(ANN)にすぎません。この例では、単一の隠れ層を持つ非常に単純な DNN を示します。DNN はスペクトル ベクトルを入力(一度に 1 ピクセル)として受け取り、ピクセルあたり 1 つのクラスラベルとクラス確率を出力します。以下の Colab ノートブックでは、DNN の作成、Earth Engine のデータによるトレーニング、エクスポートされた画像の予測、予測の Earth Engine へのインポートを示しています。

Earth Engine での予測用にホスト可能な DNN

トレーニング済みモデルから Earth Engine で直接予測を取得するには(コードエディタなど)、Google AI Platform でモデルをホストする必要があります。このガイドでは、トレーニング済みモデルを SavedModel 形式で保存する方法、earthengine model prepare コマンドを使用してモデルをホストする準備をする方法、ee.Model.fromAiPlatformPredictor を使用して Earth Engine で予測をインタラクティブに取得する方法について説明します。

TensorFlow によるロジスティック回帰

ロジスティック回帰などの従来の ML 手法は、TensorFlow で実装するのが自然です。このノートブックでは、年次コンポジットの前後から、ロジスティック回帰ベースの森林伐採検出器を示します。この非常に単純なモデルはデモ目的のものであり、精度を高めるにはいくつかの隠れ層を追加してください。

FCNN を使用した回帰

「畳み込み」ニューラル ネットワーク(CNN)には、1 つ以上の畳み込みレイヤが含まれています。入力はピクセルの近傍であり、完全接続ではないネットワークになりますが、空間パターンの特定に適しています。完全畳み込みニューラル ネットワーク(FCNN)には、出力として全結合層が含まれていません。つまり、グローバル出力(画像あたり 1 つの出力)ではなく、ローカライズされた出力(ピクセル単位)を学習します。

この Colab ノートブックでは、医用画像セグメンテーション用に開発された FCNN である UNET モデルを使用して、256 x 256 ピクセルの近傍から各ピクセルの連続した [0,1] 出力を予測する方法を示します。具体的には、この例では、ネットワークをトレーニングするためにデータのパッチをエクスポートする方法と、推論のために画像パッチをオーバータイルしてタイル境界アーティファクトを排除する方法を示します。

AI Platform でのトレーニング

比較的大きなモデル(FCNN の例など)の場合、Colab ノートブックを実行する無料の仮想マシンの存続期間が、長時間実行されるトレーニング ジョブに十分でない可能性があります。具体的には、評価データセットで予測される予測誤差が最小化されていない場合は、トレーニングの反復処理を増やすことを検討してください。Cloud で大規模なトレーニング ジョブを実行するために、この Colab ノートブックでは、トレーニング コードをパッケージ化する方法、トレーニング ジョブを開始する方法、earthengine model prepare コマンドを使用して SavedModel を準備する方法、ee.Model.fromAiPlatformPredictor を使用して Earth Engine で予測をインタラクティブに取得する方法について説明します。