我正在尝试在 Google Colab 上使用 Mask-RCNN 和 GPU,因为我需要本地计算机所缺乏的强大 GPU。为此,我什至订阅了 Google Colab Pro。我已经使用 Mask-RCNN 和 TensorFlow 2.14.0 和 Python 3.10.12 实现了一个存储库,它应该与 Google Colab 兼容:https://github.com/z-mahmud22/Mask-RCNN_TF2。 14.0
但是,我遇到了 TensorFlow 2.14.0 无法在 Google Colab 中检测到 GPU 的问题。
我使用 nvidia-smi 验证了 GPU 可用,其中显示 CUDA 版本 12.2。 其他 GPU 选项也表示 CUDA 12.2。
当我运行以下代码来检查 TensorFlow 中的 GPU 可用性时:
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
输出始终是:
Num GPUs Available: 0
当我运行训练代码时,它并不比用CPU运行它快,所以我确认GPU没有工作。
设置详情为:
环境:Google Colab(专业版)
TensorFlow 版本:2.14.0
CUDA版本:12.2(如nvidia-smi所示)
Python版本:3.10.12
我想知道这个问题是否与 TensorFlow 2.14.0 与 CUDA 12.2 的兼容性有关?如果是这样的话,在 Google Colab 中成功训练 Mask-RCNN 的可行解决方案是什么?
我已在您在我的存储库中创建的issue中提供了详细的答案。在这里,我只是重点介绍可以帮助您降级到 CUDA 11.8 的步骤,之后您可以直接使用 Google Colab 上的存储库。请按照以下步骤操作:
尝试通过以下方式删除任何现有的 CUDA 安装:
!sudo apt-get --allow-change-held-packages --purge remove "*cublas*" "cuda*" "nsight*"
通过以下方式安装 CUDA 11.8:
!wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
!chmod +x cuda_11.8.0_520.61.05_linux.run
!./cuda_11.8.0_520.61.05_linux.run --silent --toolkit
设置环境变量以指向新的 CUDA 安装:
import os
os.environ['PATH'] = "/usr/local/cuda-11.8/bin:" + os.environ['PATH']
os.environ['CUDA_HOME'] = "/usr/local/cuda-11.8"
os.environ['LD_LIBRARY_PATH'] = "/usr/local/cuda-11.8/lib64:" +
os.environ.get('LD_LIBRARY_PATH', '')