ArcGIS Image Server stellt eine Reihe von Deep-Learning-Werkzeugen mit umfassenden Workflows zum Klassifizieren und Erkennen von Objekten in Bilddaten bereit. Mit diesen Werkzeugen können Sie Trainingsgebiet-Datasets generieren und in ein Deep-Learning-Framework exportieren, um ein Deep-Learning-Modell zu entwickeln. Anschließend können Sie Dateninferenz-Workflows wie Bildklassifizierung und Objekterkennung durchführen.
Um auf einer Raster-Analyse-Server-Site mit mehreren Computern die GPU-Verarbeitung zu nutzen, muss auf jedem Serverknoten der Site eine GPU verfügbar sein. Es ist keine GPU-Karte erforderlich, um die Deep-Learning-Werkzeuge für Ihre Raster-Analyse-Bereitstellung von ArcGIS Image Server auszuführen. Wenn im Raster-Analyse-Servercomputer keine GPU-Karte vorhanden ist, können die Werkzeuge mit der CPU ausgeführt werden.
Hinweis:
In 10.7 können Raster-Analysen nicht mehrere GPUs gleichzeitig auf einem Computer verwenden. Wenn Sie einen Deep-Learning-Raster-Analyse-Workflow auf einem Computer mit mehreren GPUs ausführen, wird nur eine GPU verwendet.
Raster-Analysen in ArcGIS Image Server können TensorFlow-, PyTorch-, CNTK- und Keras Python-Module mit GPUs verwenden.
Zusätzliche Unterstützung für Deep Learning in einer Raster-Analyse-Bereitstellung
Nachdem Sie die Raster-Analyse-Bereitstellung konfiguriert haben, führen Sie die folgenden Schritte aus, um die Python-Ressourcen für Deep-Learning zu installieren. Wenn Sie über eine ArcGIS Image Server-Site mit mehreren Knoten verfügen, wiederholen Sie diese Schritte für jeden Serverknoten.
Nachdem Sie die Raster-Analyse-Bereitstellung konfiguriert haben, führen Sie die folgenden Schritte aus, um die Python-Ressourcen für Deep-Learning zu installieren. Wenn Sie über eine ArcGIS Image Server-Site mit mehreren Knoten verfügen, wiederholen Sie diese Schritte für jeden Serverknoten.
Das für diese Schritte verwendete Betriebssystemkonto muss mit dem für die Installation von ArcGIS Image Server verwendeten Konto identisch sein.
- Wenn Sie GPUs für den Deep-Learning-Raster-Analyse-Workflow verwenden, müssen Sie die entsprechenden NVIDIA-Treiber installieren.
- Installieren Sie das CUDA-Toolkit auf dem Computer. Weitere Informationen finden Sie auf der NVIDIA CUDA-Website.
- Installieren Sie die cuDNN-Bibliothek (CUDA Deep Neural Network). Weitere Informationen finden Sie auf der NVIDIA cuDNN-Website.
- Führen Sie die folgenden Befehle in der Standard-Python 3.6-Umgebung aus, die mit dem Setup von ArcGIS Server bereitgestellt wird. Dieses Python-Setup befindet sich standardmäßig unter C:\Program Files\ArcGIS\Server\framework\runtimes\ArcGIS\bin\Python.
- Installieren Sie die einzelnen Python-Module, die Sie in Ihren Deep-Learning-Raster-Analyse-Workflows verwenden möchten. Geben Sie im folgenden Teilschritt einen Umgebungsnamen ein. Der Name des Moduls gibt an, ob Sie ein CPU- oder GPU-fähiges Modul verwenden.
- Geben Sie PS C:\Program Files\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts> .\proenv.bat ein.
- Geben Sie (arcgispro-py3) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>conda create --name <specify environment name> --clone arcgispro-py3 ein.
- Geben Sie (arcgispro-py3) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>activate <environment name> ein.
- Geben Sie (<environment name>) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>conda install <module name> ein.
Beispiel für TensorFlow-Installation mit CPU-Nutzung
PS C:\Program Files\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts> .\proenv.bat (arcgispro-py3) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>conda create --name tf-cpu --clone arcgispro-py3 (arcgispro-py3) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>activate tf-cpu (tf-cpu) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>conda install tensorflow
Beispiel für TensorFlow-Installation mit GPU-Nutzung
PS C:\Program Files\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts> .\proenv.bat (arcgispro-py3) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>conda create --name tf-gpu --clone arcgispro-py3 (arcgispro-py3) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>activate tf-gpu (tf-gpu) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>conda install tensorflow-gpu
- Suchen Sie nach Python-Paketabhängigkeiten, die für Ihre Deep-Learning-Modelle erforderlich sind, und installieren Sie sie.
- Führen Sie nach dem Installieren aller notwendigen Python-Module das Batch-Skript proswap aus, um die vom Raster-Analyse-Service verwendete Python 3.6-Standardumgebung durch die geklonte Umgebung auszutauschen. Geben Sie dazu Folgendes ein: PS C:\Program Files\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts> .\proswap.bat -n <environment name>.
Hinweis:
Es wird empfohlen, für jedes Deep-Learning-Framework eine virtuelle Umgebung zu erstellen, um in Konflikt stehende Abhängigkeiten zu vermeiden. Wenn sich zwei oder mehr Frameworks in derselben Python-Umgebung befinden, sind sie möglicherweise von verschiedenen Modulversionen abhängig, die nicht zusammenarbeiten können. - Wiederholen Sie die Schritte 1 bis 5 für jeden Computer der ArcGIS Image Server-Site.
Auf jedem Serverknoten darf die GPU nur von einer Service-Instanz verwendet werden. Die maximale Anzahl der Instanzen pro Computer des RasterProcessingGPU-Service sollte auf 1 festgelegt werden, was der Standardeinstellung entspricht.
- Wählen Sie in ArcGIS Server Manager Services > Services verwalten > RasterProcessingGPU aus, und überprüfen Sie die Werte für die minimale und maximale Anzahl von Instanzen.
Vorsicht:
Erhöhen Sie die maximale Anzahl an Instanzen pro Computer für diesen Service nicht. - Starten Sie den ArcGIS Image Server für die Raster-Analyse neu, nachdem Sie zur geklonten Umgebung gewechselt sind, auf der die Deep-Learning-Python-Module installiert sind.
Jede Anforderung in Ihren Deep-Learning-Raster-Analyse-Workflows enthält den Umgebungsparameter processorType. Stellen Sie sicher, dass anhand dieses Parameters ordnungsgemäß festgelegt ist, ob beim Senden von Anforderungen CPU oder GPU verwendet werden soll. Der Umgebungsparameter processorType wird im Werkzeug oder in der Raster-Funktionsschnittstelle in ArcGIS Pro, Map Viewer, ArcGIS REST API oder ArcGIS API for Python festgelegt.