TensorFlow: AttributeError: 'Tensor' object has no attribute 'shape'
Question: I have the following code which uses TensorFlow. After I reshape a list, it
says

> AttributeError: 'Tensor' object has no attribute 'shape'

when I try to print its 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
    

Output:

> train_data.shape: (400,) Traceback (most recent call last): File "", line 1,
> in File "/home/shehab/Downloads/tools/python/pycharm-
> edu-2.0.4/helpers/pydev/pydev_import_hook.py", line 21, in do_import module
> = self._system_import(name, *args, **kwargs) File "/home/shehab/Dropbox/py-
> projects/try-tf/logistic_regression.py", line 77, in print
> "train_data.shape: " + str(train_data.shape) AttributeError: 'Tensor' object
> has no attribute 'shape'

Could anyone please tell me what I am missing?


Answer: Indeed, `tf.Tensor` doesn't have a `.shape` property. You should use the
`Tensor.get_shape()` method instead:

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

Note that in general you might not be able to get the actual shape of the
result of a TensorFlow operation. In some cases, the shape will be a computed
value that depends on running the computation to find its value; and it may
even vary from one run to the next (e.g. the shape of
[`tf.unique()`](https://www.tensorflow.org/versions/r0.9/api_docs/python/math_ops.html#unique)).
In that case, the result of `get_shape()` for some dimensions may be `None`
(or `"?"`).

