使用 TensorFlow 训练图像时使用 GPU 错误

Posted

技术标签:

【中文标题】使用 TensorFlow 训练图像时使用 GPU 错误【英文标题】:Using GPU error when use TensorFlow to train image 【发布时间】:2019-04-27 20:21:05 【问题描述】:

当我在容器 tensorflow/tensorflow:latest-gpu 中运行 tensorflow 图像训练作业时,它不起作用。

错误信息:

Cannot assign a device for operation InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D: Operation was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0, /job:localhost/replica:0/task:0/device:XLA_CPU:0, /job:localhost/replica:0/task:0/device:XLA_GPU:0 ]. Make sure the device specification refers to a valid device.
[[node InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2D (defined at /usr/local/lib/python2.7/dist-packages/tensorflow/contrib/layers/python/layers/layers.py:1057)  = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 2, 2, 1], use_cudnn_on_gpu=true, _device="/device:GPU:0"](fifo_queue_Dequeue, InceptionV3/Conv2d_1a_3x3/weights/read)]]

GPU 信息: 英伟达-smi 2018 年 11 月 26 日星期一 07:48:59 +-------------------------------------------------- --------------------------------------------+ | NVIDIA-SMI 410.72 驱动程序版本:410.72 CUDA 版本:10.0 | |-------------------------------+----------------- -----+-----------+ | GPU名称持久化-M|总线 ID Disp.A |挥发性的 Uncorr。纠错 | | Fan Temp Perf Pwr:Usage/Cap|内存使用 | GPU-Util Compute M. | |=================================+================= =====+========================| | 0 GeForce GT 630 关闭 | 00000000:01:00.0 不适用 |不适用 | | 25% 47C P0 不适用 / 不适用 | 0MiB / 1998MiB |不适用 默认 | +-------------------------------+------------------ -----+-----------+

+--------------------------------------------- -----------------------------------------------+ |进程:GPU 内存 | | GPU PID 类型 进程名称 用法 | |=================================================== =============================| | 0 不支持 | +-------------------------------------------------- ----------------------------------------+

【问题讨论】:

你在加载之前训练过的模型吗? 这是我的步骤 mkdir download_data_flower mkdir train_output python download_and_convert_data.py --dataset_name=flowers --dataset_dir=download_data_flower python train_image_classifier.py --batch_size=64 --model_name=inception_v3 --dataset_name=flowers - -dataset_split_name=train --dataset_dir=download_data_flower --train_dir=train_output 【参考方案1】:

您的 Tensorflow 似乎没有检测到任何可用的 gpu,而是将操作映射到 GPU:0。先试试这个:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

您将获得可用的设备。有/device:GPU:0吗?

【讨论】:

以上是关于使用 TensorFlow 训练图像时使用 GPU 错误的主要内容,如果未能解决你的问题,请参考以下文章

深度学习基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)

训练某些网络时,GPU 上的 Keras(Tensorflow 后端)比 CPU 上慢

TensorFlow 在训练期间没有使用我的 M1 MacBook GPU

Tensorflow 多gpu训练

关于TensorFlow使用GPU加速

TensorFlow 2.0 在单 GPU 上训练模型