Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a multi-input model in machine learning?
A multi-input model is a model that takes more than one input data source at the same time to make predictions. For example, it can use both images and text together.
Click to reveal answer
beginner
What does a multi-output model do?
A multi-output model produces more than one prediction or output from the same input data. For example, it can predict both the price and the category of a house from its features.
Click to reveal answer
intermediate
How do you define multiple inputs in TensorFlow's Keras API?
You create separate Input layers for each input and then combine them in the model. For example, input1 = tf.keras.Input(shape=(10,)) and input2 = tf.keras.Input(shape=(5,)).
Click to reveal answer
intermediate
How can you compile a multi-output model with different losses for each output?
You pass a dictionary to the loss parameter with keys as output names and values as loss functions. For example, loss={'output1': 'mse', 'output2': 'binary_crossentropy'}.
Click to reveal answer
beginner
Why use multi-input and multi-output models in real life?
They help solve complex problems where data comes from different sources and multiple predictions are needed. For example, a health app might use sensor data and user info to predict heart rate and stress level.
Click to reveal answer
What is the main purpose of a multi-input model?
ATo take multiple data sources as input
BTo produce multiple outputs
CTo train faster
DTo reduce model size
✗ Incorrect
Multi-input models take more than one input data source to improve predictions.
How do you specify multiple outputs in a Keras model?
ABy creating multiple Input layers
BBy returning a list or dictionary of outputs from the model
CBy using only one output layer
DBy stacking layers vertically
✗ Incorrect
You return multiple outputs as a list or dictionary from the model definition.
Which argument allows you to assign different loss functions to each output in Keras?
Ametrics
Boptimizer
Closs
Dloss_weights
✗ Incorrect
The loss argument can take a dictionary to assign different losses to each output.
In a multi-input model, how are inputs combined before prediction?
AThey are used one after another
BThey are ignored except one
CThey are added as separate models
DThey are concatenated or merged inside the model
✗ Incorrect
Inputs are merged or concatenated to form a combined representation for prediction.
What is a real-life example of a multi-output model?
APredicting house price and house type from features
BClassifying images into cats or dogs
CTranslating text from English to French
DDetecting spam emails
✗ Incorrect
Predicting multiple things like price and type from the same data is a multi-output task.
Explain how you would build a simple multi-input model in TensorFlow Keras.
Think about how to handle each input separately and then join them.
You got /4 concepts.
Describe how to train a multi-output model with different loss functions for each output.
Focus on how losses are assigned and how training data is structured.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of a multi-input model in TensorFlow?
easy
A. To accept more than one data source at the same time
B. To predict multiple outputs from a single input
C. To train faster using GPU acceleration
D. To reduce the number of layers in the model
Solution
Step 1: Understand multi-input models
Multi-input models are designed to take multiple data sources as inputs simultaneously.
Step 2: Differentiate from multi-output models
Multi-output models predict multiple outputs but usually from a single input source.
Final Answer:
To accept more than one data source at the same time -> Option A
Quick Check:
Multi-input = multiple data sources [OK]
Hint: Multi-input means many inputs, not many outputs [OK]
Common Mistakes:
Confusing multi-input with multi-output
Thinking multi-input reduces layers
Assuming multi-input speeds training automatically
2. Which of the following is the correct way to define two inputs in a TensorFlow Keras model?
easy
A. inputs = tf.keras.Input(shape=(10, 5))
B. inputs = tf.keras.Input(shape=(10,)), tf.keras.Input(shape=(5,))
C. inputs = [tf.keras.Input(shape=(10,)), tf.keras.Input(shape=(5,))]
D. inputs = tf.keras.Input(shape=(10,)); inputs = tf.keras.Input(shape=(5,))
Solution
Step 1: Recall how to define multiple inputs
Multiple inputs should be stored as a list of Input layers in Keras.
Step 2: Check each option
inputs = [tf.keras.Input(shape=(10,)), tf.keras.Input(shape=(5,))] correctly creates a list of two Input layers. inputs = tf.keras.Input(shape=(10,)), tf.keras.Input(shape=(5,)) creates a tuple but does not assign it properly. inputs = tf.keras.Input(shape=(10, 5)) defines a single input with combined shape. inputs = tf.keras.Input(shape=(10,)); inputs = tf.keras.Input(shape=(5,)) overwrites the first input with the second.
Final Answer:
inputs = [tf.keras.Input(shape=(10,)), tf.keras.Input(shape=(5,))] -> Option C
Quick Check:
Multiple inputs = list of Input layers [OK]
Hint: Use a list to hold multiple Input layers [OK]
Common Mistakes:
Using a tuple instead of a list for inputs
Overwriting inputs instead of storing both
Combining shapes into one input incorrectly
3. What will be the output shape of the following multi-output model?
input1 = tf.keras.Input(shape=(8,))
input2 = tf.keras.Input(shape=(4,))
x1 = tf.keras.layers.Dense(5)(input1)
x2 = tf.keras.layers.Dense(3)(input2)
output1 = tf.keras.layers.Dense(2)(x1)
output2 = tf.keras.layers.Dense(1)(x2)
model = tf.keras.Model(inputs=[input1, input2], outputs=[output1, output2])
print([o.shape for o in model.outputs])
medium
A. [TensorShape([None, 2]), TensorShape([None, 1])]
B. [TensorShape([8, 2]), TensorShape([4, 1])]
C. [TensorShape([None, 5]), TensorShape([None, 3])]
D. [TensorShape([None, 8]), TensorShape([None, 4])]
Solution
Step 1: Trace output layers shapes
output1 is Dense(2) applied to x1, so shape is (None, 2). output2 is Dense(1) applied to x2, so shape is (None, 1).
Step 2: Understand batch dimension
TensorFlow uses None for batch size, so output shapes include None as first dimension.
Final Answer:
[TensorShape([None, 2]), TensorShape([None, 1])] -> Option A
Mixing intermediate layer shapes with output shapes
4. Identify the error in this multi-output model definition:
input = tf.keras.Input(shape=(10,))
x = tf.keras.layers.Dense(8)(input)
output1 = tf.keras.layers.Dense(4)(x)
output2 = tf.keras.layers.Dense(3)(x)
model = tf.keras.Model(inputs=input, outputs=[output1, output2])
medium
A. inputs should be a list when there are multiple outputs
B. outputs should be a single tensor, not a list
C. inputs must be a list even if only one input exists
D. No error, the model is defined correctly
Solution
Step 1: Check inputs parameter
inputs can be a single Input layer if there is only one input source.
Step 2: Check outputs parameter
outputs can be a list of tensors to define multiple outputs.
Final Answer:
No error, the model is defined correctly -> Option D
Quick Check:
Single input + multiple outputs = valid model [OK]
Hint: Single input can be passed directly, outputs can be list [OK]
Common Mistakes:
Thinking inputs must always be a list
Believing outputs cannot be a list
Assuming multiple outputs require multiple inputs
5. You want to build a model that takes two inputs: an image (shape 64x64x3) and a vector of 10 features. It should output two predictions: a 5-class classification and a single continuous value. Which is the correct way to define the model inputs and outputs?
hard
A. inputs = [tf.keras.Input(shape=(64,64,3)), tf.keras.Input(shape=(10,))]; outputs = tf.keras.layers.Dense(6)(inputs)
B. inputs = [tf.keras.Input(shape=(64,64,3)), tf.keras.Input(shape=(10,))]; outputs = [tf.keras.layers.Dense(5, activation='softmax')(x), tf.keras.layers.Dense(1)(y)]
C. inputs = tf.keras.Input(shape=(64,64,3)); outputs = [tf.keras.layers.Dense(5)(inputs), tf.keras.layers.Dense(1)(inputs)]
D. inputs = tf.keras.Input(shape=(74,)); outputs = [tf.keras.layers.Dense(5)(inputs), tf.keras.layers.Dense(1)(inputs)]
Solution
Step 1: Define inputs separately for image and vector
Two inputs require two Input layers with correct shapes: (64,64,3) for image and (10,) for vector.
Step 2: Define outputs separately for classification and regression
Outputs are two layers: one Dense with 5 units and softmax for classification, one Dense with 1 unit for continuous value.