tf.tile操作无法在GPU设备上执行。 这段代码:
import tensorflow as tf
with tf.device('/gpu:0'):
tt = tf.tile(tf.range(4), [3])
with tf.Session() as sess:
print(sess.run(tt))
结果:
Caused by op u'Tile', defined at:
File "test_tf3.py", line 6, in <module>
tt = tf.tile(tf.range(4), [3])
File "/media/awork/home/astepochkin/drecs/repo/env/local/lib/python2.7/site-packages/tensorflow/python/ops/gen_array_ops.py", line 3847, in tile
name=name)
File "/media/awork/home/astepochkin/drecs/repo/env/local/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op
op_def=op_def)
File "/media/awork/home/astepochkin/drecs/repo/env/local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2630, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/media/awork/home/astepochkin/drecs/repo/env/local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1204, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
InvalidArgumentError (see above for traceback): Cannot assign a device for operation 'Tile': Could not satisfy explicit device specification '/device:GPU:0' because no supported kernel for GPU devices is available.
[[Node: Tile = Tile[T=DT_INT32, Tmultiples=DT_INT32, _device="/device:GPU:0"](range, Tile/multiples)]]
我已经查看了tensorflow源并找到了实现GPU的tile文件。所以我不明白为什么它不起作用。 有人可以帮帮我吗?
答案 0 :(得分:0)
这是因为你的类型是int32并且没有为这种类型注册GPU内核。