环境:conda(Python3.7)、tensorflow_gpu2.1.0
import tensorflow as tf
x = tf.linspace(-8, 8, 100)
y = tf.linspace(-8, 8, 100)
运行此代码时出现错误
tensorflow.python.framework.errors_impl.NotFoundError: Could not find valid device for node.
Node:{{node LinSpace}}
All kernels registered for op LinSpace :
device='XLA_GPU'; Tidx in [DT_INT32, DT_INT64]; T in [DT_FLOAT, DT_DOUBLE, DT_BFLOAT16, DT_HALF]
device='XLA_CPU'; Tidx in [DT_INT32, DT_INT64]; T in [DT_FLOAT, DT_DOUBLE, DT_BFLOAT16, DT_HALF]
device='XLA_GPU_JIT'; Tidx in [DT_INT32, DT_INT64]; T in [DT_FLOAT, DT_DOUBLE, DT_BFLOAT16, DT_HALF]
device='XLA_CPU_JIT'; Tidx in [DT_INT32, DT_INT64]; T in [DT_FLOAT, DT_DOUBLE, DT_BFLOAT16, DT_HALF]
device='CPU'; T in [DT_DOUBLE]; Tidx in [DT_INT64]
device='CPU'; T in [DT_DOUBLE]; Tidx in [DT_INT32]
device='CPU'; T in [DT_FLOAT]; Tidx in [DT_INT64]
device='CPU'; T in [DT_FLOAT]; Tidx in [DT_INT32]
device='GPU'; T in [DT_DOUBLE]; Tidx in [DT_INT64]
device='GPU'; T in [DT_DOUBLE]; Tidx in [DT_INT32]
device='GPU'; T in [DT_FLOAT]; Tidx in [DT_INT64]
device='GPU'; T in [DT_FLOAT]; Tidx in [DT_INT32]
[Op:LinSpace]
查阅tensorflow官方文档时看到
For example:
tf.linspace(10.0, 12.0, 3, name="linspace") => [ 10.0 11.0 12.0]
可以看到此处用了小数,即float类型
因此,我们写的代码也要是类型为float
所以在-8或者8后加一个 .
import tensorflow as tf
x = tf.linspace(-8., 8, 100)
y = tf.linspace(-8., 8, 100)
问题解决