Bird
Raised Fist0
TensorFlowml~5 mins

Transfer learning for small datasets in TensorFlow - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is transfer learning in machine learning?
Transfer learning is a method where a model developed for one task is reused as the starting point for a model on a second task. It helps when you have a small dataset by using knowledge from a larger dataset.
Click to reveal answer
beginner
Why is transfer learning useful for small datasets?
Because small datasets often don't have enough data to train a model well from scratch, transfer learning uses a pre-trained model's knowledge to improve learning and reduce training time.
Click to reveal answer
intermediate
In TensorFlow, what is a common step after loading a pre-trained model for transfer learning?
A common step is to freeze the pre-trained layers so their weights don't change, then add new layers on top to train on the small dataset.
Click to reveal answer
beginner
What does 'freezing layers' mean in transfer learning?
Freezing layers means making the weights of some layers unchangeable during training, so the model keeps the learned features from the original task.
Click to reveal answer
intermediate
How can you adapt a pre-trained model to a new classification task with fewer classes?
You replace the final layer(s) of the pre-trained model with new layers that match the number of classes in your new task, then train only those layers or fine-tune some layers.
Click to reveal answer
What is the main advantage of using transfer learning on small datasets?
AIt requires more data to train the model.
BIt uses knowledge from a larger dataset to improve learning.
CIt always trains the entire model from scratch.
DIt ignores pre-trained weights.
In TensorFlow, what does freezing layers do during transfer learning?
APrevents the weights of those layers from updating during training.
BDeletes those layers from the model.
CAdds new layers to the model.
DIncreases the learning rate for those layers.
Which step is usually done first when applying transfer learning with TensorFlow?
ARandomly initialize weights.
BTrain a model from scratch.
CLoad a pre-trained model.
DDelete all layers.
How do you handle a different number of classes in your new task compared to the pre-trained model?
AUse the pre-trained model without any changes.
BKeep the original final layer unchanged.
CRemove all layers except the first.
DReplace the final layer with one matching the new number of classes.
What is a common practice to avoid overfitting when training on small datasets with transfer learning?
AFreeze most pre-trained layers and train only new layers.
BTrain all layers with a high learning rate.
CUse no pre-trained model.
DIncrease the dataset size by copying data.
Explain how transfer learning helps when you have a small dataset. Include the role of freezing layers and adapting the final layer.
Think about reusing knowledge and adjusting the model for your task.
You got /4 concepts.
    Describe the steps to apply transfer learning in TensorFlow for a new image classification task with limited data.
    Focus on loading, freezing, replacing, compiling, and training.
    You got /5 concepts.

      Practice

      (1/5)
      1. What is the main reason to use transfer learning when working with small datasets in TensorFlow?
      easy
      A. To increase the size of the dataset automatically
      B. To use a pretrained model's knowledge and avoid training from scratch
      C. To reduce the number of layers in the model
      D. To train all layers of a model from random weights

      Solution

      1. Step 1: Understand transfer learning purpose

        Transfer learning uses a pretrained model to leverage learned features from large datasets.
      2. Step 2: Relate to small dataset challenges

        Small datasets lack enough data to train deep models well, so using pretrained knowledge helps.
      3. Final Answer:

        To use a pretrained model's knowledge and avoid training from scratch -> Option B
      4. Quick Check:

        Transfer learning = pretrained knowledge reuse [OK]
      Hint: Transfer learning reuses pretrained features for small data [OK]
      Common Mistakes:
      • Thinking transfer learning increases dataset size
      • Believing all layers must be retrained
      • Assuming transfer learning reduces model layers
      2. Which TensorFlow code snippet correctly freezes the base model layers for transfer learning?
      easy
      A. base_model.freeze_layers()
      B. base_model.trainable = True
      C. base_model.trainable = False
      D. base_model.layers.freeze()

      Solution

      1. Step 1: Recall how to freeze layers in TensorFlow

        Setting trainable = False on the base model freezes all its layers.
      2. Step 2: Check code options

        Only base_model.trainable = False is valid TensorFlow syntax to freeze layers.
      3. Final Answer:

        base_model.trainable = False -> Option C
      4. Quick Check:

        Freeze layers = trainable False [OK]
      Hint: Set base_model.trainable = False to freeze layers [OK]
      Common Mistakes:
      • Using trainable = True instead of False
      • Calling non-existent freeze_layers() method
      • Trying to freeze layers with base_model.layers.freeze()
      3. Given this code snippet, what will be the output shape of the model's predictions?
      import tensorflow as tf
      base_model = tf.keras.applications.MobileNetV2(input_shape=(128,128,3), include_top=False, pooling='avg')
      base_model.trainable = False
      model = tf.keras.Sequential([
        base_model,
        tf.keras.layers.Dense(10, activation='softmax')
      ])
      model.build((None, 128, 128, 3))
      predictions = model(tf.random.uniform((5, 128, 128, 3)))
      print(predictions.shape)
      medium
      A. (5, 1)
      B. (5, 128, 128, 3)
      C. (5, 1000)
      D. (5, 10)

      Solution

      1. Step 1: Analyze model architecture

        MobileNetV2 outputs pooled features (shape: (None, 1280)) due to pooling='avg'. Then Dense(10) outputs 10 classes.
      2. Step 2: Check input batch size and output shape

        Input batch size is 5, so output shape is (5, 10) from Dense layer.
      3. Final Answer:

        (5, 10) -> Option D
      4. Quick Check:

        Batch 5, 10 classes output shape = (5, 10) [OK]
      Hint: Output shape matches batch size and last Dense units [OK]
      Common Mistakes:
      • Confusing input shape with output shape
      • Expecting output shape to match input image shape
      • Assuming output has 1000 classes from original MobileNet
      4. You wrote this code but get an error when training:
      base_model = tf.keras.applications.ResNet50(weights='imagenet', include_top=False)
      base_model.trainable = False
      model = tf.keras.Sequential([
        base_model,
        tf.keras.layers.Dense(5, activation='softmax')
      ])
      model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
      model.fit(train_data, epochs=3)

      What is the likely cause of the error?
      medium
      A. Missing input shape in base_model causing shape mismatch
      B. trainable should be True to train the model
      C. Loss function is incorrect for classification
      D. Dense layer should have no activation

      Solution

      1. Step 1: Check base_model input shape requirement

        ResNet50 requires input_shape when include_top=False to build properly.
      2. Step 2: Identify error cause

        Without input_shape, model layers don't connect correctly, causing training errors.
      3. Final Answer:

        Missing input shape in base_model causing shape mismatch -> Option A
      4. Quick Check:

        Input shape needed for base_model [OK]
      Hint: Always specify input_shape when include_top=False [OK]
      Common Mistakes:
      • Not specifying input_shape for pretrained base model
      • Thinking trainable must be True to avoid errors
      • Changing loss function unnecessarily
      5. You have a small dataset of 200 images for a 3-class classification task. Which transfer learning approach is best to get good accuracy quickly?
      hard
      A. Use a pretrained model, freeze base layers, add new Dense layers, train only new layers
      B. Train a new model from scratch with random weights
      C. Use a pretrained model and train all layers without freezing
      D. Use a pretrained model without adding new layers and train only base layers

      Solution

      1. Step 1: Consider dataset size and training time

        Small dataset (200 images) benefits from freezing pretrained base to avoid overfitting and long training.
      2. Step 2: Choose transfer learning strategy

        Freezing base layers and training new Dense layers adapts model to new task efficiently.
      3. Final Answer:

        Use a pretrained model, freeze base layers, add new Dense layers, train only new layers -> Option A
      4. Quick Check:

        Freeze base + train new layers = best for small data [OK]
      Hint: Freeze base layers, train new layers for small datasets [OK]
      Common Mistakes:
      • Training all layers on small data causing overfitting
      • Training from scratch wasting time and data
      • Not adding new layers for the specific task
      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