How to get Tensorflow tensor dimensions (shape) as int values? How to get Tensorflow tensor dimensions (shape) as int values? python python

How to get Tensorflow tensor dimensions (shape) as int values?


To get the shape as a list of ints, do tensor.get_shape().as_list().

To complete your tf.shape() call, try tensor2 = tf.reshape(tensor, tf.TensorShape([num_rows*num_cols, 1])). Or you can directly do tensor2 = tf.reshape(tensor, tf.TensorShape([-1, 1])) where its first dimension can be inferred.


Another way to solve this is like this:

tensor_shape[0].value

This will return the int value of the Dimension object.


2.0 Compatible Answer: In Tensorflow 2.x (2.1), you can get the dimensions (shape) of the tensor as integer values, as shown in the Code below:

Method 1 (using tf.shape):

import tensorflow as tfc = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])Shape = c.shape.as_list()print(Shape)   # [2,3]

Method 2 (using tf.get_shape()):

import tensorflow as tfc = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])Shape = c.get_shape().as_list()print(Shape)   # [2,3]