在最近的 ImageAI 更新后自定义对象检测训练期间几乎没有 GPU 使用

Little to No GPU Usage during Custom Object Detection Training After Recent ImageAI Update

大约一个月前,我使用 TensorFlowGPU 1.13 在 Google Colab Pro 上使用 ImageAI 使用 750 张图像训练了自定义对象检测模型,训练时间大约为 30 分钟/epoch。现在,当我使用相同的数据集但使用 TensorFlowGPU 2.4.3(ImageAI 不再支持旧 TF)进行训练时,我得到的 GPU 使用率非常低(0.1GB),每个时期的训练时间为 6 小时。我已经尝试在我的本地机器上训练相同的模型,但我的训练时间也很慢。

我正在使用以下导入(基于 ImageAI 文档):

!pip install tensorflow-gpu==2.4.0 keras==2.4.3 numpy==1.19.3 pillow==7.0.0 scipy==1.4.1 h5py==2.10.0 matplotlib==3.3.2 opencv-python keras-resnet==0.2.0 !pip install imageai --upgrade

我正在从 Google 驱动器中提取我的训练数据。

有什么我可能会遗漏的东西可以加快我在 Google Colab 或我的本地机器上的对象检测训练时间吗?缓慢的训练时间拖慢了我的研究速度。

如果你想充分利用 GPU,根据我的经验,你必须恢复到以前版本的 ImageAI 及其兼容包。这是我已安装的兼容包列表,截至目前(2021 年 1 月)在我的本地计算机和 Google Colab 上运行:

  • TF-GPU==1.13.1
  • Keras==2.2.4
  • Imageai==2.1.0

这解决了由 ImageAI 的最新补丁引起的任何问题。我现在恢复到完全使用 GPU 的状态。在问题修复之前,我建议使用旧版本。