Image Analyst ライセンスで利用できます。
概要
[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールからの出力を使用してディープ ラーニング モデルをトレーニングします。
使用法
ArcGIS Pro のディープ ラーニング フレームワークを使用するようにコンピューターを設定するには、「ArcGIS 用のディープ ラーニング フレームワークのインストール」をご参照ください。
このツールは、PyTorch ディープ ラーニング フレームワークを使用してトレーニングを実施します。このツールを正常に実行するには、PyTorch をコンピューターにインストールしておく必要があります。
このツールの入力トレーニング データには、[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールから生成された画像フォルダーとラベル フォルダーを含める必要があります。
このツールの実行要件および発生する可能性のある問題の詳細については、「ディープ ラーニングに関するよくある質問」をご参照ください。
ディープ ラーニングの詳細については、「ArcGIS Pro のディープ ラーニング」をご参照ください。
構文
TrainDeepLearningModel(in_folder, out_folder, {max_epochs}, {model_type}, {batch_size}, {arguments}, {learning_rate}, {backbone_model}, {pretrained_model}, {validation_percentage}, {stop_training}, {freeze})
パラメーター | 説明 | データ タイプ |
in_folder | モデルのトレーニングに必要な画像チップ、ラベル、統計情報を含むフォルダー。[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data for Deep Learning)] ツールから生成された出力。 モデルのトレーニングにおいて、入力画像は 3 バンドの 8 ビット ラスターである必要があります。 | Folder |
out_folder | トレーニング済みのモデルを保存する出力フォルダーの場所。 | Folder |
max_epochs (オプション) | モデルをトレーニングする場合の対象となるエポックの最大数。最大エポックを 1 に設定すると、データセットがニューラル ネットワークを通って前後に 1 回渡されます。デフォルト値は 20 です。 | Long |
model_type (オプション) | ディープ ラーニング モデルのトレーニングに使用するモデル タイプを指定します。
| String |
batch_size (オプション) | 1 回のトレーニングで処理されるトレーニング サンプルの数。デフォルト値は 2 です。 高性能な GPU を使用している場合は、この数を 8、16、32、または 64 に増やすことができます。 | Long |
arguments [arguments,...] (オプション) | Python ラスター関数クラスには、関数の引数が定義されています。ここでは、実験や調整のための追加のディープ ラーニング パラメーターおよび引数 (感度を調整するための信頼性の閾値など) をリストします。引数の名前は、Python モジュールを読み取ることによって入力されます。 [SSD] を [model_type] パラメーターの値として選択すると、[arguments] パラメーターに次の引数が設定されます。
[PSPNET] を [model_type] パラメーターの値として選択すると、[arguments] パラメーターに次の引数が設定されます。
[RETINANET] を [model_type] パラメーターの値として選択すると、[arguments] パラメーターに次の引数が設定されます。
| Value Table |
learning_rate (オプション) | トレーニング処理全体で、既存の情報を新たに取得した情報に上書きする割合。値を指定しないと、トレーニング プロセス中に最適な学習率が学習曲線から抽出されます。 | Double |
backbone_model (オプション) | 新しいモデルをトレーニングするアーキテクチャとして使用する、事前構成済みのニューラル ネットワークを指定します。この手法は転移学習と呼ばれています。
| String |
pretrained_model (オプション) | 新しいモデルの微調整トレーニングに使用する事前トレーニング済みモデル。入力ファイルは Esri モデル定義ファイル (*.emd) です。 類似したクラスを持つ事前トレーニング済みモデルは、新しいモデルに合わせて微調整することができます。たとえば、車に関してトレーニングされた既存のモデルを微調整して、トラックを識別するモデルをトレーニングすることができます。 事前トレーニング済みモデルは、新しいモデルのトレーニングに使用される同じモデル タイプおよびバックボーン モデルでトレーニングされている必要があります。 | File |
validation_percentage (オプション) | モデルの検証に使用するトレーニング サンプルの割合。デフォルト値は 10 です。 | Double |
stop_training (オプション) | 早期停止を実施するかどうかを指定します。
| Boolean |
freeze (オプション) | 事前トレーニング済みモデルのバックボーン レイヤーを固定するかどうかを指定します。これにより、ウェイトとバイアスが本来の設計どおりになります。
| Boolean |
派生した出力
名前 | 説明 | データ タイプ |
out_model_file | 出力トレーニング済みモデル ファイル | ファイル |
コードのサンプル
この例では、U-Net 手法を使用してツリー分類モデルをトレーニングします。
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
TrainDeepLearningModel(r"C:\DeepLearning\TrainingData\Roads_FC",
r"C:\DeepLearning\Models\Fire", 40, "UNET", 16, "# #", None,
"RESNET34", None, 10, "STOP_TRAINING", "FREEZE_MODEL")
この例では、SSD 手法を使用してオブジェクト検出モデルをトレーニングします。
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
#Define input parameters
in_folder = "C:\\DeepLearning\\TrainingData\\Cars"
out_folder = "C:\\Models\\Cars"
max_epochs = 100
model_type = "SSD"
batch_size = 2
arg = "grids '[4, 2, 1]';zooms '[0.7, 1.0, 1.3]';ratios '[[1, 1], [1, 0.5], [0.5, 1]]'"
learning_rate = 0.003
backbone_model = "RESNET34"
pretrained_model = "C:\\Models\\Pretrained\\vehicles.emd"
validation_percent = 10
stop_training = "STOP_TRAINING"
freeze = "FREEZE_MODEL"
# Execute
TrainDeepLearningModel(in_folder, out_folder, max_epochs, model_type,
batch_size, arg, learning_rate, backbone_model, pretrained_model,
validation_percent, stop_training, freeze)
ライセンス情報
- Basic: 次のものが必要 Image Analyst
- Standard: 次のものが必要 Image Analyst
- Advanced: 次のものが必要 Image Analyst
関連トピック
- ディープ ラーニング ツールセットの概要
- ArcGIS 用のディープ ラーニング フレームワークのインストール
- ディープ ラーニングを使用したオブジェクトの分類 (Classify Objects Using Deep Learning)
- ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)
- ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)
- ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)