Failed to convert object of type class 'tuple' to Tensor错误
程序员文章站
2022-03-21 21:13:26
...
Failed to convert object of type <class ‘tuple’> to Tensor. Contents: (None, -1, 128). Consider casting elements to a supported type.
tensorflow
中此类错误一般是 Tensor
计算中,使用 x.shape[i]
错误使用导致,正确的使用应该使用tf.shape(x)[i]
,即将x.shape
换成tf.shape(x)
就可以了,类型区别如下:
a.shape : TensorShape类型
tf.shape(a) : Tensor类型(符合计算类型)
a = tf.zeros(shape=(15,3,8))
tf.shape(a), a.shape, a.get_shape()
(<tf.Tensor: id=7, shape=(3,), dtype=int32, numpy=array([15, 3, 8], dtype=int32)>,
TensorShape([15, 3, 8]),
TensorShape([15, 3, 8]))
# 做切片后
tf.shape(a)[0], a.shape[0], a.get_shape()[0]
(<tf.Tensor: id=7, shape=(), dtype=int32, numpy=15>, 15, 15)
不满足tensorflow计算tensor格式
补充:
获得Python原生类型的维度信息:
x.shape.as_list() # [2,3]
x.shape.ndims # 2
获得TensorFlow中Tensor类型的维度信息:
tf.shape(x)
tf.rank(x)
上一篇: 如何定制博客园的个人空间
下一篇: go语言安装目录各主要文件夹功用