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

问题描述

大约一个月前,我在 Google Colab Pro 上使用 ImageAI 使用 TensorFlowGPU 1.13 使用 750 张图像训练了自定义对象检测模型,训练时间大约为 30 分钟/轮次。现在,当我使用相同的数据集但使用 TensorFlowGPU 2.4.3(ImageAI 不再支持旧的 TF)进行训练时,我的 GPU 使用率非常低(0.1GB),并且每 epoch 训练时间为 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 使用状态。在修复问题之前,我建议使用旧版本。