Failed to convert object of type class 'tuple' to Tensor错误

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)
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值