Deep-Learning-Modell trainieren (Image Analyst)

Mit der Image Analyst-Lizenz verfügbar.

Zusammenfassung

Trainiert ein Deep-Learning-Modell mit der Ausgabe des Werkzeugs Trainingsdaten für Deep Learning exportieren.

Verwendung

  • Informationen zum Einrichten des Computers für Deep-Learning-Frameworks in ArcGIS Pro finden Sie unter Installieren von Deep-Learning-Frameworks for ArcGIS.

  • Für das Werkzeug wird das Deep-Learning-Framework PyTorch verwendet. PyTorch muss daher auf Ihrem Rechner installiert sein, damit das Werkzeug erfolgreich ausgeführt werden kann.

  • Die Eingabe-Trainingsdaten für dieses Werkzeug müssen die Bilder- und Beschriftungsordner umfassen, die vom Werkzeug Trainingsdaten für Deep Learning exportieren generiert werden.

  • Weitere Informationen zu den Voraussetzungen für die Ausführung dieses Werkzeugs und eventuell dabei auftretenden Problemen finden Sie unter Häufig gestellte Fragen zu Deep LearningPDF mit FAQ zu Deep Learning.

  • Weitere Informationen zu Deep Learning finden Sie unter Deep Learning in ArcGIS Pro.

Syntax

TrainDeepLearningModel(in_folder, out_folder, {max_epochs}, {model_type}, {batch_size}, {arguments}, {learning_rate}, {backbone_model}, {pretrained_model}, {validation_percentage}, {stop_training}, {freeze})
ParameterErklärungDatentyp
in_folder

Der Ordner mit den Bildschnipseln, Beschriftungen und Statistiken, die zum Trainieren des Modells benötigt werden. Dies ist die Ausgabe des Werkzeugs Trainingsdaten für Deep Learning exportieren.

Zum Trainieren eines Modells müssen die Eingabe-Bilder 8-Bit-Raster mit drei Bändern sein.

Folder
out_folder

Der Speicherort des Ausgabeordners, in dem das trainierte Modell gespeichert wird.

Folder
max_epochs
(optional)

Die maximale Anzahl von Epochen, für die das Modell trainiert wird. Eine maximale Epoche von eins bedeutet, dass das Dataset einmal vorwärts und einmal rückwärts durch das neuronale Netz geleitet wird. Der Standardwert ist 20.

Long
model_type
(optional)

Gibt den Modelltyp an, der für das Training des Deep-Learning-Modells verwendet werden soll.

  • SSDDer Single Shot Detector (SSD)-Ansatz wird zum Trainieren des Modells verwendet. SSD wird für die Objekterkennung eingesetzt. In den Eingabe-Trainingsdaten für diesen Modelltyp wird das Pascal Visual Object Classes-Metadatenformat verwendet.
  • UNETDer U-Net-Ansatz wird zum Trainieren des Modells verwendet. U-Net wird für die Pixelklassifizierung verwendet.
  • FEATURE_CLASSIFIER Der Feature Classifier-Ansatz wird zum Trainieren des Modells verwendet. Dies wird für die Objekt- oder Bildklassifizierung verwendet.
  • PSPNETDer Pyramid Scene Parsing Network (PSPNET)-Ansatz wird zum Trainieren des Modells verwendet. PSPNET wird für die Pixelklassifizierung verwendet.
  • RETINANETDer RetinaNet-Ansatz wird zum Trainieren des Modells verwendet. RetinaNet wird für die Objekterkennung eingesetzt. In den Eingabe-Trainingsdaten für diesen Modelltyp wird das Pascal Visual Object Classes-Metadatenformat verwendet.
  • MASKRCNNDer MaskRCNN-Ansatz wird zum Trainieren des Modells verwendet. MaskRCNN wird für die Objekterkennung eingesetzt. Es wird zur Instanzsegmentierung verwendet, d. h. zur automatischen Abgrenzung von Objekten in einem Bild, z. B. bei der Erkennung von Gebäudegrundrissen oder Schwimmbädern. Er verwendet das MaskRCNN-Metadatenformat für die Trainingsdaten als Eingabe. Klassenwerte für Eingabe-Trainingsdaten müssen bei 1 beginnen. Dieser Modelltyp kann nur mit einer CUDA-aktivierten GPU trainiert werden.
String
batch_size
(optional)

Die Anzahl der Trainingstichproben, die für das Training gleichzeitig bearbeitet werden müssen. Der Standardwert ist 2.

Wenn Sie eine leistungsstarke GPU haben, kann diese Zahl auf 8, 16, 32 oder 64 erhöht werden.

Long
arguments
[arguments,...]
(optional)

Die Funktionsargumente werden in der Python-Raster-Funktionsklasse definiert. Hier geben Sie zusätzliche Deep-Learning-Parameter und Argumente für Experimente und Verfeinerungen wie den Konfidenzschwellenwert zur Anpassung der Empfindlichkeit an. Die Namen der Argumente werden durch Lesen des Python-Moduls aufgefüllt.

Wenn Sie SSD als model_type-Parameterwert wählen, wird der Parameter arguments mit folgenden Argumenten befüllt:

  • grids: Die Anzahl der Gitternetze, in die das Bild für die Verarbeitung aufgeteilt wird. Das Festlegen des Arguments auf [4] bedeutet, dass das Bild in 4 x 4 oder 16 Gitterzellen aufgeteilt wird. Der Standard ist [4, 2, 1], was bedeutet, dass es 21 Gitterzellen gibt ([4 x 4] + [2 x 2] + [1 x 1] = 21).
  • zooms: Die Anzahl der Zoomstufen, die jede Zelle hoch- oder herunterskaliert wird. Das Festlegen des Arguments auf [1] bedeutet, dass alle Gitterzellen die gleiche Größe oder Zoomstufe beibehalten. Eine Zoomstufe von [2] bedeutet, dass alle Gitterzellen zwei Mal so groß werden (um 100 Prozent vergrößert). Die Bereitstellung einer Liste von Zoomstufen bedeutet, dass alle Gitterzellen mit allen Zahlen in der Liste skaliert werden. Die Standardeinstellung ist [0,7, 1,0, 1,3].
  • ratios: Die Liste der für die Ankerboxen zu verwendenden Seitenverhältnisse. Bei der Objekterkennung stellt eine Ankerbox die ideale Position, Form und Größe des vorhergesagten Objekts dar. Das Festlegen dieses Arguments auf [[1,0,1,0], [1,0, 0,5]] bedeutet, die Ankerbox ist ein Quadrat (1:1) oder ein Rechteck, bei dem die horizontale Seite halb so groß wie die vertikale Seite ist (1:0,5). Die Standardeinstellung ist [[1, 1], [1, 0,5], [0,5, 1]].

Wenn Sie PSPNET als model_type-Parameterwert wählen, wird der Parameter arguments mit folgenden Argumenten befüllt:

  • USE_UNET_DECODER: Der U-Net-Decoder wird zum Wiederherstellen von Daten verwendet, nachdem das Pyramiden-Pooling abgeschlossen ist. Die Standardeinstellung ist True.
  • PYRAMID_SIZE: Die Anzahl und Größe der Faltungs-Layer, die auf die verschiedenen Unterregionen anzuwenden sind. Die Standardeinstellung ist [1,2,3,6].

Wenn Sie RETINANET als model_type-Parameterwert wählen, wird der Parameter arguments mit folgenden Argumenten befüllt:

  • SCALES: Die Anzahl der Maßstabsebenen, die jede Zelle hoch- oder herunterskaliert wird. Die Standardeinstellung ist [1, 0,8, 0,63].
  • RATIOS: Das Seitenverhältnis der Ankerbox. Die Standardeinstellung ist [0,5,1,2].

Value Table
learning_rate
(optional)

Die Rate, mit der vorhandene Informationen während des gesamten Trainingsprozesses durch neu erworbene Informationen überschrieben werden. Ist kein Wert angegeben, wird die optimale Lernrate während des Trainingsprozesses aus der Lernkurve extrahiert.

Double
backbone_model
(optional)

Gibt das vorkonfigurierte neuronale Netz an, das als Architektur für das Training des neuen Modells verwendet werden soll. Diese Methode wird als Transfer Learning bezeichnet.

  • DENSENET121Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes dichtes Netzwerk, das mehr als eine Million Bilder und 121 Layer enthält. Im Gegensatz zur RESNET-Architektur, die die Layer durch Summierung kombiniert, kombiniert DenseNet die Layer durch Verkettung.
  • DENSENET161Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes dichtes Netzwerk, das mehr als eine Million Bilder und 161 Layer enthält. Im Gegensatz zur RESNET-Architektur, die die Layer durch Summierung kombiniert, kombiniert DenseNet die Layer durch Verkettung.
  • DENSENET169Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes dichtes Netzwerk, das mehr als eine Million Bilder und 169 Layer enthält. Im Gegensatz zur RESNET-Architektur, die die Layer durch Summierung kombiniert, kombiniert DenseNet die Layer durch Verkettung.
  • DENSENET201Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes dichtes Netzwerk, das mehr als eine Million Bilder und 201 Layer enthält. Im Gegensatz zur RESNET-Architektur, die die Layer durch Summierung kombiniert, kombiniert DenseNet die Layer durch Verkettung.
  • MOBILENET_V2Dieses vorkonfigurierte Modell wird auf der ImageNet-Datenbank trainiert und enthält 54 Layer. Es ist auf Edgegeräte-Computing ausgerichtet, da es weniger Speicher benötigt.
  • MASKRCNN50_FPNDieses vorkonfigurierte Modell wurde für die Objekterkennung mit dem RESNET50-Backbone auf dem Feature Pyramid Network (FPN) trainiert, um Objekte in verschiedenen Maßstäben zu erkennen.
  • RESNET18Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes Residualnetzwerk, das mehr als eine Million Bilder und 18 Layer enthält.
  • RESNET34Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes Residualnetzwerk, das mehr als eine Million Bilder und 34 Layer enthält. Dies ist die Standardeinstellung.
  • RESNET50Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes Residualnetzwerk, das mehr als eine Million Bilder und 50 Layer enthält.
  • RESNET101Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes Residualnetzwerk, das mehr als eine Million Bilder und 101 Layer enthält.
  • RESNET152Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes Residualnetzwerk, das mehr als eine Million Bilder und 152 Layer enthält.
  • VGG11Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes neuronales Faltungsnetzwerk, das mehr als eine Million Bilder zur Klassifizierung von Bildern in 1.000 Objektkategorien enthält und 11 Layer umfasst.
  • VGG11_BNDieses vorkonfigurierte Modell basiert auf dem VGG-Netzwerk, jedoch mit Batch-Normalisierung, was bedeutet, dass jeder Layer im Netzwerk normalisiert wird. Es wurde auf dem ImageNet-Dataset trainiert und enthält 11 Layer.
  • VGG13Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes neuronales Faltungsnetzwerk, das mehr als eine Million Bilder zur Klassifizierung von Bildern in 1.000 Objektkategorien enthält und 13 Layer umfasst.
  • VGG13_BNDieses vorkonfigurierte Modell basiert auf dem VGG-Netzwerk, jedoch mit Batch-Normalisierung, was bedeutet, dass jeder Layer im Netzwerk normalisiert wird. Es wurde auf dem ImageNet-Dataset trainiert und enthält 13 Layer.
  • VGG16Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes neuronales Faltungsnetzwerk, das mehr als eine Million Bilder zur Klassifizierung von Bildern in 1.000 Objektkategorien enthält und 16 Layer umfasst.
  • VGG16_BNDieses vorkonfigurierte Modell basiert auf dem VGG-Netzwerk, jedoch mit Batch-Normalisierung, was bedeutet, dass jeder Layer im Netzwerk normalisiert wird. Es wurde auf dem ImageNet-Dataset trainiert und enthält 16 Layer.
  • VGG19Das vorkonfigurierte Modell ist ein auf dem ImageNET-Dataset trainiertes neuronales Faltungsnetzwerk, das mehr als eine Million Bilder zur Klassifizierung von Bildern in 1.000 Objektkategorien enthält und 19 Layer umfasst.
  • VGG19_BNDieses vorkonfigurierte Modell basiert auf dem VGG-Netzwerk, jedoch mit Batch-Normalisierung, was bedeutet, dass jeder Layer im Netzwerk normalisiert wird. Es wurde auf dem ImageNet-Dataset trainiert und enthält 19 Layer.
String
pretrained_model
(optional)

Das vortrainierte Modell, das zum Finetuning des neuen Modells verwendet werden soll. Die Eingabe ist eine Esri Modelldefinitionsdatei (.emd).

Für ein vortrainiertes Modell mit ähnlichen Klassen kann ein Finetuning durchgeführt werden, um es auf das neue Modell abzustimmen. Beispielsweise kann für ein vorhandenes Modell, das für Autos trainiert wurde, ein Finetuning durchgeführt werden, um ein Modell für die Identifizierung von Lastwagen zu trainieren.

Das vortrainierte Modell muss mit dem gleichen Modelltyp und dem gleichen Backbone-Modell trainiert worden sein, das für das Training des neuen Modells verwendet wird.

File
validation_percentage
(optional)

Der Prozentsatz der Trainingsgebiete, die für die Überprüfung des Modells verwendet werden sollen. Der Standardwert ist 10.

Double
stop_training
(optional)

Gibt an, ob ein frühzeitiges Beenden implementiert wird.

  • STOP_TRAININGAktiviert: Das Modelltraining wird beendet, wenn sich das Modell nicht mehr verbessert, und zwar unabhängig vom angegebenen Parameterwert max_epochs. Dies ist die Standardeinstellung.
  • CONTINUE_TRAININGDas Modelltraining wird fortgesetzt, bis der Parameterwert max_epochs erreicht wurde.
Boolean
freeze
(optional)

Gibt an, ob die Backbone-Layer im vortrainierten Modell fixiert werden sollen, sodass die Gewichtungen und Verzerrungen wie ursprünglich vorgesehen beibehalten werden.

  • FREEZE_MODELDie vordefinierten Gewichtungen und Verzerrungen werden im backbone_model nicht geändert. Dies ist die Standardeinstellung.
  • UNFREEZE_MODELDie Gewichtungen und Verzerrungen des backbone_model können geändert werden, um sie an Ihre Trainingsgebiete anzupassen. Die Verarbeitung dauert zwar länger, führt aber in der Regel zu besseren Ergebnissen.
Boolean

Abgeleitete Ausgabe

NameErklärungDatentyp
out_model_file

Die trainierte Ausgabe-Modelldatei.

Datei

Codebeispiel

TrainDeepLearningModel – Beispiel 1 (Python-Fenster)

In diesem Beispiel wird ein Baumklassifizierungsmodell mit dem U-Netz-Ansatz trainiert.

# 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")
TrainDeepLearningModel – Beispiel 2 (eigenständiges Skript)

In diesem Beispiel wird ein Objekterkennungsmodell mit dem SSD-Ansatz trainiert.

# 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)

Lizenzinformationen

  • Basic: Erfordert Image Analyst
  • Standard: Erfordert Image Analyst
  • Advanced: Erfordert Image Analyst

Verwandte Themen