Bird
Raised Fist0
TensorFlowml~5 mins

Transformer basics in TensorFlow - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main purpose of a Transformer model in machine learning?
A Transformer model is designed to process sequences of data, like sentences, by paying attention to all parts of the sequence at once. It helps computers understand context and relationships in data such as language.
Click to reveal answer
beginner
What does 'self-attention' mean in a Transformer?
Self-attention is a way for the model to look at every word in a sentence and decide which other words are important to understand the meaning of each word.
Click to reveal answer
intermediate
Name the two main parts of a Transformer encoder layer.
The two main parts are: 1) Multi-head self-attention mechanism, which helps the model focus on different parts of the input, and 2) Feed-forward neural network, which processes the information further.
Click to reveal answer
intermediate
Why do Transformers use 'positional encoding'?
Because Transformers look at all words at once, they need a way to know the order of words. Positional encoding adds information about the position of each word in the sequence.
Click to reveal answer
intermediate
What is the benefit of using multi-head attention instead of single-head attention?
Multi-head attention allows the model to look at the input from different perspectives at the same time, capturing more details and relationships than single-head attention.
Click to reveal answer
What does the Transformer model primarily replace compared to older sequence models?
ARecurrent neural networks (RNNs)
BConvolutional neural networks (CNNs)
CDecision trees
DSupport vector machines
In self-attention, what does the model compute to decide importance between words?
AFrequency of words
BEuclidean distance between words
CDot product between query and key vectors
DSum of word lengths
What role does the feed-forward network play in a Transformer encoder layer?
ACalculates positional encoding
BProcesses each position independently after attention
CGenerates output tokens
DNormalizes input data
Why is positional encoding necessary in Transformers?
ATo provide word order information
BTo reduce model size
CTo speed up training
DTo increase vocabulary size
How does multi-head attention improve model understanding?
ABy reducing training time
BBy increasing the number of layers
CBy using larger batch sizes
DBy attending to different parts of the input simultaneously
Explain how self-attention works in a Transformer model and why it is important.
Think about how the model decides which words to focus on when reading a sentence.
You got /4 concepts.
    Describe the role of positional encoding in Transformers and how it helps the model.
    Remember that Transformers see all words at once, so they need a way to know the order.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the attention mechanism in a Transformer model?
      easy
      A. To reduce the number of layers
      B. To increase the size of the model
      C. To focus on important parts of the input sequence
      D. To generate random outputs

      Solution

      1. Step 1: Understand attention in Transformers

        The attention mechanism helps the model look at important words or parts in the input sequence.
      2. Step 2: Identify the main goal of attention

        Its goal is to give more weight to relevant parts, improving understanding of context.
      3. Final Answer:

        To focus on important parts of the input sequence -> Option C
      4. Quick Check:

        Attention = Focus on important parts [OK]
      Hint: Attention means focusing on key input parts [OK]
      Common Mistakes:
      • Thinking attention increases model size
      • Confusing attention with layer count
      • Believing attention creates random outputs
      2. Which of the following is the correct way to import the MultiHeadAttention layer in TensorFlow?
      easy
      A. from tensorflow.keras.layers import MultiHeadAttention
      B. import MultiHeadAttention from tensorflow.layers
      C. from tensorflow import MultiHeadAttention
      D. import MultiHeadAttention from keras.layers

      Solution

      1. Step 1: Recall TensorFlow Keras layer imports

        TensorFlow's Keras layers are imported from tensorflow.keras.layers module.
      2. Step 2: Check correct import syntax

        The correct syntax is: from tensorflow.keras.layers import MultiHeadAttention.
      3. Final Answer:

        from tensorflow.keras.layers import MultiHeadAttention -> Option A
      4. Quick Check:

        Correct import = from tensorflow.keras.layers import MultiHeadAttention [OK]
      Hint: Use tensorflow.keras.layers for Keras layers [OK]
      Common Mistakes:
      • Using incorrect import paths
      • Confusing tensorflow and keras imports
      • Using wrong import syntax
      3. Given the following TensorFlow code snippet, what is the shape of the output tensor?
      import tensorflow as tf
      mha = tf.keras.layers.MultiHeadAttention(num_heads=2, key_dim=4)
      query = tf.random.uniform((1, 3, 8))
      value = tf.random.uniform((1, 4, 8))
      output = mha(query=query, value=value)
      medium
      A. (1, 3, 4)
      B. (1, 4, 8)
      C. (3, 1, 8)
      D. (1, 3, 8)

      Solution

      1. Step 1: Understand MultiHeadAttention input shapes

        Query shape is (batch=1, query_len=3, features=8), value shape is (1, 4, 8).
      2. Step 2: Determine output shape

        Output shape matches query length and feature dimension: (1, 3, 8).
      3. Final Answer:

        (1, 3, 8) -> Option D
      4. Quick Check:

        Output shape = query shape except last dim [OK]
      Hint: Output shape matches query's first two dims [OK]
      Common Mistakes:
      • Confusing value length with output length
      • Mixing batch and sequence dimensions
      • Assuming output feature dims change
      4. Identify the error in this Transformer block code snippet:
      import tensorflow as tf
      class SimpleTransformer(tf.keras.layers.Layer):
          def __init__(self):
              super().__init__()
              self.mha = tf.keras.layers.MultiHeadAttention(num_heads=2, key_dim=4)
          def call(self, x):
              attn_output = self.mha(query=x)
              return attn_output + x
      medium
      A. MultiHeadAttention requires 'value' argument
      B. The addition attn_output + x causes shape mismatch
      C. The call method should return only attn_output
      D. Missing positional encoding before attention

      Solution

      1. Step 1: Check MultiHeadAttention required arguments

        MultiHeadAttention needs query and value arguments; value is missing here.
      2. Step 2: Understand why value is needed

        Without value, the layer cannot compute attention properly, causing an error.
      3. Final Answer:

        MultiHeadAttention requires 'value' argument -> Option A
      4. Quick Check:

        Missing value argument = MultiHeadAttention requires 'value' argument [OK]
      Hint: Always provide query and value arguments to MultiHeadAttention [OK]
      Common Mistakes:
      • Assuming value defaults when only query is provided
      • Ignoring required arguments in call
      • Thinking positional encoding is mandatory here
      5. You want to build a Transformer block in TensorFlow that includes MultiHeadAttention followed by a feed-forward network with ReLU activation. Which code snippet correctly implements this?
      hard
      A. class TransformerBlock(tf.keras.layers.Layer): def __init__(self): super().__init__() self.mha = tf.keras.layers.MultiHeadAttention(num_heads=4, key_dim=8) self.ffn = tf.keras.Sequential([ tf.keras.layers.Dense(8, activation='relu'), tf.keras.layers.Dense(32) ]) def call(self, x): attn_output = self.mha(query=x, key=x, value=x) ffn_output = self.ffn(attn_output) return ffn_output + x
      B. class TransformerBlock(tf.keras.layers.Layer): def __init__(self): super().__init__() self.mha = tf.keras.layers.MultiHeadAttention(num_heads=4, key_dim=8) self.ffn = tf.keras.Sequential([ tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dense(8) ]) def call(self, x): attn_output = self.mha(query=x, key=x, value=x) ffn_output = self.ffn(attn_output) return ffn_output + x
      C. class TransformerBlock(tf.keras.layers.Layer): def __init__(self): super().__init__() self.mha = tf.keras.layers.MultiHeadAttention(num_heads=8, key_dim=4) self.ffn = tf.keras.Sequential([ tf.keras.layers.Dense(8, activation='relu'), tf.keras.layers.Dense(32) ]) def call(self, x): attn_output = self.mha(query=x, key=x, value=x) ffn_output = self.ffn(attn_output) return ffn_output + x
      D. class TransformerBlock(tf.keras.layers.Layer): def __init__(self): super().__init__() self.mha = tf.keras.layers.MultiHeadAttention(num_heads=2, key_dim=8) self.ffn = tf.keras.Sequential([ tf.keras.layers.Dense(8, activation='relu'), tf.keras.layers.Dense(32) ]) def call(self, x): attn_output = self.mha(query=x, key=x, value=x) ffn_output = self.ffn(attn_output) return ffn_output + x

      Solution

      1. Step 1: Check MultiHeadAttention parameters

        num_heads=4, key_dim=8 produces output_dim=32, valid for Transformer blocks.
      2. Step 2: Verify feed-forward network structure

        FFN uses Dense(32, activation='relu') to expand, then Dense(8) to match input dim.
      3. Step 3: Confirm call method logic

        Applies self-attention, FFN on output, residual connection (shapes match: 8).
      4. Final Answer:

        Code with num_heads=4, key_dim=8, FFN Dense(32, ReLU) then Dense(8) -> Option B
      5. Quick Check:

        MHA(4 heads, key_dim=8) + FFN expand(32 ReLU)-contract(8) + residual [OK]
      Hint: Feed-forward expands then reduces features after attention [OK]
      Common Mistakes:
      • Swapping Dense layer sizes in feed-forward network
      • Using wrong num_heads or key_dim values
      • Omitting key argument in MultiHeadAttention
      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