我正在使用谷歌市场的谷歌深度学习虚拟机,我选择了NvdiaK80 GPU。我正在尝试使用对象检测 API 训练对象检测模型。但是,我注意到张量流默认情况下不使用GPU(要检查的代码如下)
我在这里的假设是,此实例附带所有必需的 NVIDIA 驱动程序,因此它不是与驱动程序相关的问题。
进一步的调查显示,我安装了 2 个 Tensorflow(tensorflow 1.12.0 和 tensorflow-GPU 1.12.0)。所以我卸载了CPU版本。但是,它仍然没有帮助。
我使用下面的代码来检查张量流是否正在使用GPU
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
作为参考,我使用以下代码进行对象检测训练,该代码在深度学习 VM 上运行良好,但不使用 GPU。
python $Tensor_path/legacy/train.py --logtostderr --
train_dir=$Train_path/training/ --
pipeline_config_path=$Train_path/training/
ssd_inception_v2_pets.config
输出(我希望正在使用的GPU设备细节)
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 18292259467280600161
]
我能够通过删除旧实例并从新实例重新开始来解决此问题。我的猜测是张量流 GPU 安装在安装对象检测 API 时损坏。已按照此处的步骤安装 https://cloud.google.com/solutions/creating-object-detection-application-tensorflow
这句话很可能是罪魁祸首
pip install --upgrade
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.1.0-cp27-none-
linux_x86_64.whl