When you print the tensor, TensorFlow guesses the shape. However, you can get the shape of the tensor with the shape property.
Below, you construct a matrix filled with a number from 10 to 15 and you check the shape of m_shape
# Shape of tensor
m_shape = tf.constant([ [10, 11],
[12, 13],
[14, 15] ]
)
m_shape.shape
Output
TensorShape([Dimension(3), Dimension(2)])
The matrix has 3 rows and 2 columns.
TensorFlow has useful commands to create a vector or a matrix filled with 0 or 1. For instance, if you want to create a 1-D tensor with a specific shape of 10, filled with 0, you can run the code below:
# Create a vector of 0
print(tf.zeros(10))
Output
Tensor("zeros:0", shape=(10,), dtype=float32)
The property works for matrix as well. Here, you create a 10x10 matrix filled with 1
# Create a vector of 1
print(tf.ones([10, 10]))
Output
Tensor("ones:0", shape=(10, 10), dtype=float32)
You can use the shape of a given matrix to make a vector of ones. The matrix m_shape is a 3x2 dimensions. You can create a tensor with 3 rows filled by one's with the following code:
# Create a vector of ones with the same number of rows as m_shape
print(tf.ones(m_shape.shape[0]))
Output
Tensor("ones_1:0", shape=(3,), dtype=float32)
If you pass the value 1 into the bracket, you can construct a vector of ones equals to the number of columns in the matrix m_shape.
# Create a vector of ones with the same number of column as m_shape
print(tf.ones(m_shape.shape[1]))
Output
Tensor("ones_2:0", shape=(2,), dtype=float32)
Finally, you can create a matrix 3x2 with only one's
print(tf.ones(m_shape.shape))
Output
Tensor("ones_3:0", shape=(3, 2), dtype=float32)