【发布时间】:2018-01-20 17:54:10
【问题描述】:
我尝试使用多 GPU 训练我的模型。所以我运行 cifar10_multi_gpu.py (https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_multi_gpu_train.py) 。
1。我的位置:
操作系统平台:Linux 版本 3.10.0-327.el7.x86_64
TensorFlow 安装:pip install --upgrade ./tensorflow_gpu-1.0.0rc0-cp35-cp35m-linux_x86_64.whl
Python 版本:Python 3.5.2
CUDA/cuDNN 版本:cuda_8.0.61_375.26_linux.run / cudnn-8.0-linux-x64-v5.1.tgz
2。 GPU 设置正确
将张量流导入为 tf
with tf.device('/cpu:0'):
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a') b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')使用 tf.device('/gpu:1'):
c = a + bsess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(c)
添加:(添加):/job:localhost/replica:0/task:0/gpu:1 I
tensorflow/core/common_runtime/simple_placer.cc:841] 添加: (添加)/job:localhost/replica:0/task:0/gpu:1 b:(常量): /job:localhost/replica:0/task:0/cpu:0 我
tensorflow/core/common_runtime/simple_placer.cc:841] b: (常量)/job:localhost/replica:0/task:0/cpu:0 a: (常量): /job:localhost/replica:0/task:0/cpu:0 我
tensorflow/core/common_runtime/simple_placer.cc:841] 一个: (const)/job:localhost/replica:0/task:0/cpu:0
array([ 2., 4., 6.], dtype=float32)
3。 InvalidArgumentError:python cifar10_multi_gpu.py
>I tensorflow/core/common_runtime/simple_placer.cc:669] 忽略设备 节点“tower_0/fifo_queue_Dequeue”的规范 /GPU:0 因为 来自“prefetch_queue/fifo_queue”的输入边是参考连接 并且已经有一个设备字段设置为 /CPU:0
Traceback(最近一次调用最后一次):文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", 第 1022 行,在 _do_call 中 返回 fn(*args)
文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", 第 1000 行,在 _run_fn self._extend_graph()
文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", 第 1049 行,在 _extend_graph self._session, graph_def.SerializeToString(), status)
文件“/home/xx/anaconda3/lib/python3.5/contextlib.py”,第 66 行,在 退出 下一个(self.gen)
文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", 第 469 行,在 raise_exception_on_not_ok_status pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: 无法将设备分配给节点“tower_0/softmax_linear/weight_loss_1”: 无法满足明确的设备规范“/device:GPU:0” 因为没有支持 GPU 设备的内核可用。
[[节点:tower_0/softmax_linear/weight_loss_1 = 标量摘要[T=DT_FLOAT, _device="/device:GPU:0"](tower_0/softmax_linear/weight_loss_1/tags, tower_0/softmax_linear/weight_loss)]]
在处理上述异常的过程中,又发生了一个异常:
Traceback(最近一次调用最后一次):文件 “cifar10_multi_gpu_train.py”,第 280 行,在 tf.app.run() 文件“/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/platform/app.py”, 第 44 行,运行中 _sys.exit(main(_sys.argv[:1] + flags_passthrough))
文件“cifar10_multi_gpu_train.py”,第 276 行,在 main 火车()
文件“cifar10_multi_gpu_train.py”,第 237 行,在火车中 sess.run(init)
文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", 第 767 行,运行中 run_metadata_ptr)
文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", 第 965 行,在 _run feed_dict_string, options, run_metadata)
文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", 第 1015 行,在 _do_run 目标列表、选项、运行元数据)
文件 "/home/xx/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", 第 1035 行,在 _do_call 中 raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: 无法将设备分配给节点“tower_0/softmax_linear/weight_loss_1”: 无法满足明确的设备规范“/device:GPU:0” 因为没有支持 GPU 设备的内核可用。
[[节点:tower_0/softmax_linear/weight_loss_1 = 标量摘要[T=DT_FLOAT, _device="/device:GPU:0"](tower_0/softmax_linear/weight_loss_1/tags, tower_0/softmax_linear/weight_loss)]]
我尝试了很多解决方案,但都失败了。感谢您提前提供任何建议。
【问题讨论】:
标签: linux tensorflow gpu