ArcGIS Image Server 提供一套使用端到端工作流的深度学习工具,用于分类和检测影像中的对象。这些工具允许您生成训练样本数据集并将其导出至深度学习框架,以开发深度学习模型。然后,您可以执行数据推断工作流,如影像分类和对象检测。
要在多机栅格分析服务器站点上利用 GPU 处理,则站点中的每个服务器节点上必须有一个可用的 GPU。在 ArcGIS Image Server 的栅格分析部署上运行深度学习工具并不需要 GPU 卡。如果栅格分析服务器计算机没有 GPU 卡,则工具可以在 CPU 上运行。
注:
在版本 10.7,栅格分析不能在一台计算机上同时使用多个 GPU。如果在具有多个 GPU 的计算机上运行深度学习栅格分析工作流,则将仅使用一个 GPU。
ArcGIS Image Server 中的栅格分析可以将 TensorFlow、PyTorch、CNTK 和 Keras Python 模块与 GPU 配合使用。
向栅格分析部署添加深度学习支持
配置您的栅格分析部署后,请按照以下步骤安装深度学习 Python 资源。如果您的 ArcGIS Image Server 站点具有多个节点,请在每个服务器节点上重复这些步骤。
配置您的栅格分析部署后,请按照以下步骤安装深度学习 Python 资源。如果您的 ArcGIS Image Server 站点具有多个节点,请在每个服务器节点上重复这些步骤。
执行这些步骤的 OS 帐户与安装 ArcGIS Image Server 的帐户必须为同一账户。
- 如果您要将 GPU 用于深度学习栅格分析工作流,请安装相应的 NVIDIA 驱动程序。
- 在计算机上安装 CUDA 工具包。有关详细信息,请参阅NVIDIA CUDA 网站。
- 安装 CUDA 深度神经网络 (cuDNN) 库。有关详细信息,请参阅 NVIDIA cuDNN 网站。
- 在随 ArcGIS Server 安装程序提供的默认 Python 3.6 环境中运行以下命令。默认情况下,此 Python 安装程序位于 C:\Program Files\ArcGIS\Server\framework\runtimes\ArcGIS\bin\Python。
- 安装要在深度学习栅格分析工作流中使用的每个 Python 模块。在下面的子步骤 b 中,指定环境名称。模块的名称指示您使用的是启用 CPU 的模块还是启用 GPU 的模块。
- 输入 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 <specify environment name> --clone arcgispro-py3
- 输入 (arcgispro-py3) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>activate <environment name>
- 输入 (<environment name>) C:\Program Files\arcgis\server\framework\runtime\ArcGIS\envs\arcgispro-py3>conda install <module name>
使用 CPU 的 TensorFlow 安装示例
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
使用 GPU 的 TensorFlow 安装示例
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
- 检查并安装深度学习模型所需的任何 Python 软件包依赖项。
- 安装所有必要的 Python 模块后,运行 proswap 批处理脚本,通过键入 PS C:\Program Files\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts> .\proswap.bat -n <environment name> 将栅格分析服务使用的默认 Python 3.6 环境交换到克隆环境。
注:
建议您为每个深度学习框架创建一个虚拟环境,以避免依赖项冲突。如果两个或多个框架位于同一 Python 环境中,则它们可能依赖于无法结合使用的不同版本的模块。 - 在 ArcGIS Image Server 站点中的每台计算机上重复步骤 1 至 5。
仅允许一个服务实例使用每个服务器节点上的 GPU。RasterProcessingGPU 服务每台计算机的最大实例数应始终设置为默认值 1。
- 在 ArcGIS Server Manager 中,选择服务 > 管理服务 > RasterProcessingGPU 并验证最小和最大实例数值。
警告:
请勿增加此服务每台计算机的最大实例数。 - 切换到已安装深度学习 Python 模块的克隆环境后,针对栅格分析重新启动 ArcGIS Image Server。
深度学习栅格分析工作流中的每个请求都包含 processorType 环境参数。请确保此参数正确指定在发出请求时使用 CPU 还是 GPU。processorType 环境参数在工具或在 ArcGIS Pro、Map Viewer、ArcGIS REST API 或 ArcGIS API for Python 中的栅格函数界面中进行设置。