Bird
Raised Fist0
PyTorchml~5 mins

Compose transforms in PyTorch - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of Compose in PyTorch transforms?

Compose lets you combine multiple image transformations into one sequence. It applies each transform one after another to the input data.

Click to reveal answer
beginner
How do you use Compose to apply a resize and then convert an image to a tensor?
transform = Compose([Resize((128, 128)), ToTensor()])

This creates a transform that first resizes images to 128x128 pixels, then converts them to tensors.

Click to reveal answer
intermediate
What happens if you change the order of transforms inside Compose?

The transforms are applied in the order you list them. Changing order can change the final output. For example, Normalize() before ToTensor() will cause an error.

Click to reveal answer
intermediate
Can Compose include custom transforms?
<p>Yes! You can write your own transform as a class or function and include it inside <code>Compose</code> along with built-in transforms.</p>
Click to reveal answer
beginner
What is the output of applying Compose([Resize((64,64)), ToTensor()]) to an image?

The output is a PyTorch tensor representing the image resized to 64x64 pixels, ready for model input.

Click to reveal answer
What does Compose do in PyTorch transforms?
ALoads images from disk
BCreates a new dataset
CTrains a neural network
DChains multiple transforms to apply in sequence
Which of these is a correct way to use Compose?
ACompose([Resize((128,128)), ToTensor()])
BCompose([ToTensor(), Resize((128,128))])
CCompose(Resize((128,128)), ToTensor())
DCompose(ToTensor())
What type of object does ToTensor() produce?
ANumPy array
BPyTorch tensor
CPython list
DPIL Image
If you want to add a custom transform to Compose, what must it do?
ATrain a model
BLoad data from disk
CReturn a transformed image or tensor
DPrint the image
What happens if you put Normalize() before ToTensor() in Compose?
ANormalize will fail because input is a PIL image, not a tensor
BIt works fine
CThe image will be normalized twice
DThe image will convert back to tensor
Explain how Compose helps when preparing images for a PyTorch model.
Think about how you get images ready step-by-step.
You got /4 concepts.
    Describe what could go wrong if you change the order of transforms inside Compose.
    Consider what happens if you convert to tensor too early.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of Compose in PyTorch transforms?
      easy
      A. To chain multiple image transforms into one step
      B. To train a neural network model
      C. To load datasets from disk
      D. To visualize images in a grid

      Solution

      1. Step 1: Understand Compose functionality

        Compose is used to combine several image transformations so they run one after another.
      2. Step 2: Compare with other options

        Training models, loading datasets, and visualization are different tasks not handled by Compose.
      3. Final Answer:

        To chain multiple image transforms into one step -> Option A
      4. Quick Check:

        Compose chains transforms = C [OK]
      Hint: Compose chains transforms in order for easy preprocessing [OK]
      Common Mistakes:
      • Thinking Compose trains models
      • Confusing Compose with dataset loading
      • Assuming Compose visualizes images
      2. Which of the following is the correct way to create a Compose transform that converts images to tensor and normalizes them?
      easy
      A. transforms.Compose(transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,)))
      B. transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
      C. transforms.Compose{transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))}
      D. transforms.Compose([transforms.Normalize((0.5,), (0.5,)), transforms.ToTensor()])

      Solution

      1. Step 1: Check Compose syntax

        Compose takes a list of transforms inside square brackets [].
      2. Step 2: Verify order and syntax

        transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) uses correct list syntax and order: ToTensor first, then Normalize. transforms.Compose(transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))) misses list brackets, C uses curly braces, D reverses order which is incorrect.
      3. Final Answer:

        transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) -> Option B
      4. Quick Check:

        Compose needs list and correct order = A [OK]
      Hint: Use square brackets [] inside Compose and correct transform order [OK]
      Common Mistakes:
      • Omitting list brackets in Compose
      • Using curly braces instead of brackets
      • Reversing transform order
      3. What will be the output shape of the tensor after applying this Compose transform on a 28x28 grayscale image?
      transform = transforms.Compose([
          transforms.ToTensor(),
          transforms.Resize((14, 14))
      ])
      img_tensor = transform(image)
      medium
      A. [3, 14, 14]
      B. [1, 28, 28]
      C. [1, 14, 14]
      D. [3, 28, 28]

      Solution

      1. Step 1: Understand ToTensor output

        For a grayscale image, ToTensor() converts it to a tensor with shape [channels, height, width] where channels=1.
      2. Step 2: Apply Resize transform

        Resize((14,14)) changes height and width to 14 each, channels remain 1.
      3. Final Answer:

        [1, 14, 14] -> Option C
      4. Quick Check:

        Grayscale tensor shape after resize = [1,14,14] [OK]
      Hint: Grayscale images have 1 channel; Resize changes height and width [OK]
      Common Mistakes:
      • Assuming 3 channels for grayscale
      • Ignoring Resize effect on shape
      • Confusing height and width order
      4. Identify the error in this Compose transform code:
      transform = transforms.Compose([
          transforms.Normalize((0.5,), (0.5,)),
          transforms.ToTensor()
      ])
      medium
      A. ToTensor should be replaced with ToPILImage
      B. Normalize parameters are incorrect
      C. Compose requires a tuple, not a list
      D. Normalize should come after ToTensor

      Solution

      1. Step 1: Check transform order

        Normalize expects a tensor input, so ToTensor() must come first to convert image to tensor.
      2. Step 2: Validate other options

        Parameters for Normalize are correct, Compose accepts list, and ToPILImage is not needed here.
      3. Final Answer:

        Normalize should come after ToTensor -> Option D
      4. Quick Check:

        Normalize after ToTensor = A [OK]
      Hint: Always put ToTensor before Normalize in Compose [OK]
      Common Mistakes:
      • Placing Normalize before ToTensor
      • Confusing list and tuple for Compose
      • Replacing ToTensor incorrectly
      5. You want to apply a Compose transform that first randomly flips an image horizontally, then converts it to a tensor, and finally normalizes it. Which code snippet correctly implements this?
      hard
      A. transforms.Compose([transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
      B. transforms.Compose([transforms.ToTensor(), transforms.RandomHorizontalFlip(), transforms.Normalize((0.5,), (0.5,))])
      C. transforms.Compose([transforms.Normalize((0.5,), (0.5,)), transforms.RandomHorizontalFlip(), transforms.ToTensor()])
      D. transforms.Compose([transforms.RandomHorizontalFlip(), transforms.Normalize((0.5,), (0.5,)), transforms.ToTensor()])

      Solution

      1. Step 1: Order of transforms

        RandomHorizontalFlip works on PIL images, so it must come before ToTensor which converts to tensor.
      2. Step 2: Normalize after ToTensor

        Normalize requires tensor input, so it must come after ToTensor.
      3. Step 3: Verify options

        transforms.Compose([transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) has correct order: flip, then tensor, then normalize. Others have wrong order causing errors or wrong behavior.
      4. Final Answer:

        transforms.Compose([transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) -> Option A
      5. Quick Check:

        Flip before ToTensor, Normalize last = D [OK]
      Hint: Flip before ToTensor; Normalize last in Compose chain [OK]
      Common Mistakes:
      • Placing Normalize before ToTensor
      • Applying flip after ToTensor (wrong input type)
      • Mixing order causing runtime errors
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard