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

Oma*_*hab 13 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
Run Code Online (Sandbox Code Playgroud)

输出:

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模块中= self._system_import(name,*args,**kwargs)文件"/home/shehab/Dropbox/py-projects/try-tf/logistic_regression.py",第77行,in print"train_data.shape:"+ str(train_data.shape)AttributeError:'Tensor'对象没有属性'shape'

谁能告诉我我错过了什么?

mrr*_*rry 20

更新:从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())
Run Code Online (Sandbox Code Playgroud)

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

  • 我假设第一个`train_data.shape`是一个NumPy数组.在将`tf.reshape()`的结果重新分配给`train_data`之后,它的类型是`tf.Tensor`. (3认同)