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
Dieses Werkzeug trainiert ein Deep-Learning-Modell in Deep-Learning-Umgebungen.
Informationen zum Einrichten des Computers für Deep-Learning-Frameworks in ArcGIS Pro finden Sie unter Installieren von Deep-Learning-Frameworks for ArcGIS.
Dieses Werkzeug kann auch zur Optimierung eines vorhandenen trainierten Modells verwendet werden. 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.
Wenn Sie dieses Werkzeug mit dem Grafikprozessor ausführen möchten, legen Sie die Umgebungsvariable Prozessortyp auf GPU fest. Wenn Sie mehrere Grafikprozessoren haben, legen Sie stattdessen die Umgebungsvariable GPU ID fest.
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 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})
Parameter | Erklärung | Datentyp |
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.
| 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:
Wenn Sie ein Pixelklassifizierungsmodell wie PSPNET, UNET oder DEEPLAB als Wert für den Parameter model_type auswählen, wird der Parameter arguments mit folgenden Argumenten aufgefüllt:
Wenn Sie RETINANET als model_type-Parameterwert wählen, wird der Parameter arguments mit folgenden Argumenten befüllt:
Alle Modelltypen unterstützen das Argument chip_size, bei dem es sich um die Schnipselgröße der Kacheln in den Trainingsgebieten handelt. Die Bildschnipselgröße wird aus der .emd-Datei in dem Ordner extrahiert, der im Parameter in_folder angegeben ist. | 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.
| String |
pretrained_model (optional) | Das vortrainierte Modell, das zum Finetuning des neuen Modells verwendet werden soll. Die Eingabe ist eine Esri Modelldefinitionsdatei (.emd) oder eine Deep-Learning-Paketdatei (.dlpk). Für ein vortrainiertes Modell mit ähnlichen Klassen kann ein Finetuning durchgeführt werden, um es auf das neue Modell abzustimmen. 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.
| Boolean |
freeze (optional) | Gibt an, ob die Backbone-Layer im vorab trainierten Modell fixiert werden sollen, sodass die Gewichtungen und Verzerrungen wie ursprünglich vorgesehen beibehalten werden.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_model_file | Die trainierte Ausgabe-Modelldatei. | Datei |
Codebeispiel
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")
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)
Umgebungen
Lizenzinformationen
- Basic: Erfordert Image Analyst
- Standard: Erfordert Image Analyst
- Advanced: Erfordert Image Analyst