TensorFlow:AttributeError:'Tensor'对象没有属性'shape'

时间:2016-07-29 19:14:55

标签: python neural-network tensorflow

我有以下使用TensorFlow的代码。在我重新整理列表后,它说

  

AttributeError:'Tensor'对象没有属性'shape'

当我尝试打印它的形状时。

# Get the shape of the training data.
print "train_data.shape: " + str(train_data.shape)
train_data = tf.reshape(train_data, [400, 1])
print "train_data.shape: " + str(train_data.shape)
train_size,num_features = train_data.shape

输出:

  

train_data.shape:(400,)   Traceback(最近一次调用最后一次):文件   文件中的“”,第1行   “/home/shehab/Downloads/tools/python/pycharm-edu-2.0.4/helpers/pydev/pydev_import_hook.py”   第21行,在do_import中       module = self._system_import(name,* args,** kwargs)文件“/home/shehab/Dropbox/py-projects/try-tf/logistic_regression.py”,行   77,在       print“train_data.shape:”+ str(train_data.shape)AttributeError:'Tensor'对象没有属性'shape'

有人能告诉我我错过了什么吗?

3 个答案:

答案 0 :(得分:18)

更新:自TensorFlow 1.0起,tf.Tensor现在具有tf.Tensor.shape属性,该属性返回与tf.Tensor.get_shape()相同的值。

实际上,在TensorFlow 1.0 tf.Tensor之前的版本中没有.shape属性。您应该使用Tensor.get_shape()方法:

train_data = tf.reshape(train_data, [400, 1])
print "train_data.shape: " + str(train_data.get_shape())

请注意,通常您可能无法获得TensorFlow操作结果的实际形状。在某些情况下,形状将是一个计算值,取决于运行计算以找到其值;它甚至可能从一次运行到另一次运行(例如tf.unique()的形状)。在这种情况下,某些维度get_shape()的结果可能是None(或"?")。

答案 1 :(得分:1)

import tensorflow as tf

并将train_data.shape替换为tf.Session.run(tf.rank(train_data))

答案 2 :(得分:0)

使用tf.shape(tensor)tf.get_shape(tensor)