Tensors are like boxes holding numbers. Knowing their shape helps us organize data. Reshaping changes the box size without changing the numbers inside.
When you want to change data layout to fit a model input.
When you need to flatten images into a list for simple models.
When combining or splitting batches of data.
When preparing data for matrix operations like multiplication.
When debugging to check if tensor shapes match expected sizes.
tf.reshape changes the shape but keeps the same data.
Examples
This prints the shape of the tensor: (2, 3).
TensorFlow
import tensorflow as tf
# Create a tensor of shape (2, 3)
t = tf.constant([[1, 2, 3], [4, 5, 6]])
print(t.shape)
Reshape the tensor to shape (3, 2). The numbers stay the same but arranged differently.
TensorFlow
reshaped = tf.reshape(t, (3, 2))
print(reshaped)
Flatten the tensor to a 1D list. -1 means 'figure out this size automatically.'
TensorFlow
flattened = tf.reshape(t, [-1])
print(flattened)
Sample Model
This program shows how to check a tensor's shape, reshape it to a new shape, and flatten it to 1D. The numbers inside stay the same, only the shape changes.
When reshaping, the total number of elements must stay the same.
Use -1 in tf.reshape to let TensorFlow calculate that dimension automatically.
Checking shapes helps avoid errors when feeding data to models.
Summary
Tensors have shapes that describe their size in each dimension.
Reshaping changes the shape but keeps the same data.
Use tensor.shape to see shape and tf.reshape to change it.
Practice
(1/5)
1. What does the shape of a tensor represent in TensorFlow?
easy
A. The size of the tensor in each dimension
B. The data type of the tensor elements
C. The memory address of the tensor
D. The number of operations performed on the tensor
Solution
Step 1: Understand tensor shape meaning
The shape of a tensor tells us how many elements it has along each dimension, like rows and columns in a matrix.
Step 2: Differentiate shape from other properties
Data type, memory address, and operations are different properties, not shape.
Final Answer:
The size of the tensor in each dimension -> Option A
Quick Check:
Tensor shape = size per dimension [OK]
Hint: Shape means size per dimension, not data or memory [OK]
Common Mistakes:
Confusing shape with data type
Thinking shape is memory location
Mixing shape with number of operations
2. Which of the following is the correct way to reshape a tensor t to shape (2, 3) in TensorFlow?
easy
A. tf.reshape(t, (2, 3))
B. t.reshape(2, 3)
C. tf.change_shape(t, (2, 3))
D. reshape(t, (2, 3))
Solution
Step 1: Recall TensorFlow reshape syntax
TensorFlow uses tf.reshape(tensor, new_shape) to reshape tensors.
Step 2: Check each option
tf.reshape(t, (2, 3)) uses correct function and parameters. t.reshape(2, 3) is invalid because tensors don't have a reshape method. tf.change_shape(t, (2, 3)) uses a non-existent function. reshape(t, (2, 3)) misses the module prefix.
Final Answer:
tf.reshape(t, (2, 3)) -> Option A
Quick Check:
Use tf.reshape(t, shape) to reshape [OK]
Hint: Use tf.reshape(tensor, shape) to reshape tensors [OK]
Common Mistakes:
Using tensor.reshape() method which doesn't exist
Using wrong function name like tf.change_shape
Omitting tf module prefix
3. What will be the output shape of the following code?
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
t_reshaped = tf.reshape(t, (3, 2))
print(t_reshaped.shape)
medium
A. (2, 3)
B. (6,)
C. (3, 2)
D. (1, 6)
Solution
Step 1: Check original tensor shape
The tensor t has shape (2, 3) because it has 2 rows and 3 columns.
Step 2: Understand reshape operation
Reshape changes the shape to (3, 2) without changing data count. The total elements remain 6.
Final Answer:
(3, 2) -> Option C
Quick Check:
Reshape to (3, 2) changes shape accordingly [OK]
Hint: Reshape keeps total elements same, just changes shape [OK]
Common Mistakes:
Confusing original shape with reshaped shape
Assuming reshape flattens tensor
Mixing up rows and columns
4. Identify the error in the following TensorFlow code:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4])
t_reshaped = tf.reshape(t, (3, 2))
print(t_reshaped)
medium
A. print statement syntax is incorrect
B. tf.constant cannot create 1D tensors
C. tf.reshape requires a list, not a tuple for shape
D. The reshape shape (3, 2) does not match total elements
Solution
Step 1: Count elements in original tensor
The tensor t has 4 elements: [1, 2, 3, 4].
Step 2: Check reshape target shape
The target shape (3, 2) requires 6 elements (3*2=6), which does not match 4 elements available.
Final Answer:
The reshape shape (3, 2) does not match total elements -> Option D
Quick Check:
Reshape shape must match total elements [OK]
Hint: Total elements before and after reshape must be equal [OK]
Common Mistakes:
Ignoring mismatch in total elements
Thinking tf.constant can't create 1D tensors
Believing shape must be list, not tuple
5. You have a tensor t with shape (4, 3, 2). You want to reshape it to a 2D tensor where the first dimension is 6. What should the second dimension be?
hard
A. 24
B. 4
C. 12
D. 8
Solution
Step 1: Calculate total elements in original tensor
Original shape is (4, 3, 2). Total elements = 4 * 3 * 2 = 24.
Step 2: Find second dimension for reshape
We want first dimension = 6. So second dimension = total elements / 6 = 24 / 6 = 4.
Final Answer:
4 -> Option B
Quick Check:
New shape dims multiply to total elements [OK]
Hint: Divide total elements by known dimension to find missing one [OK]
Common Mistakes:
Multiplying instead of dividing total elements
Forgetting to multiply all original dimensions
Choosing wrong option without calculation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.