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 the purpose of Dropout in neural networks?
Dropout helps prevent overfitting by randomly turning off some neurons during training. This forces the network to learn more robust features.
Click to reveal answer
beginner
How does nn.Dropout behave differently during training and evaluation in PyTorch?
During training, nn.Dropout randomly sets some inputs to zero. During evaluation, it passes all inputs unchanged to keep the full signal.
Click to reveal answer
beginner
What does the parameter 'p' in nn.Dropout(p) represent?
The parameter 'p' is the probability of an element being zeroed (dropped) during training. For example, p=0.3 means 30% of neurons are dropped randomly.
Click to reveal answer
intermediate
Show a simple PyTorch example of applying nn.Dropout with p=0.5 to a tensor.
import torch
import torch.nn as nn
x = torch.ones(5)
dropout = nn.Dropout(p=0.5)
dropout.train() # set to training mode
output = dropout(x)
print(output)
# Output will have about half the elements set to zero randomly.
Click to reveal answer
beginner
Why is Dropout usually turned off during model evaluation?
Dropout is turned off during evaluation to use the full network capacity for predictions. Turning it off ensures stable and consistent outputs.
Click to reveal answer
What does nn.Dropout(p=0.2) do during training?
ARandomly sets 20% of inputs to zero
BRandomly sets 80% of inputs to zero
CScales inputs by 0.2
DDoes nothing
✗ Incorrect
The parameter p=0.2 means 20% of the inputs are randomly dropped (set to zero) during training.
During evaluation, nn.Dropout in PyTorch:
ARandomly drops neurons
BScales outputs by dropout probability
CRaises an error
DPasses inputs unchanged
✗ Incorrect
Dropout is disabled during evaluation, so inputs pass through unchanged.
Why use Dropout in training a neural network?
ATo speed up training
BTo increase model size
CTo prevent overfitting
DTo reduce input size
✗ Incorrect
Dropout helps prevent overfitting by making the network less reliant on any single neuron.
If you set nn.Dropout(p=0), what happens?
AAll neurons are dropped
BNo neurons are dropped
CHalf neurons are dropped
DError occurs
✗ Incorrect
p=0 means zero probability of dropping neurons, so dropout does nothing.
Which mode must be set for nn.Dropout to actually drop neurons?
Atrain()
Beval()
Ctest()
Ddropout()
✗ Incorrect
Dropout only drops neurons when the module is in training mode.
Explain how nn.Dropout works and why it is useful in training neural networks.
Think about how turning off some neurons helps the network learn better.
You got /4 concepts.
Describe the difference in behavior of nn.Dropout during training and evaluation phases.
Consider what happens to the inputs in each phase.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of using nn.Dropout in a PyTorch model?
easy
A. To increase the learning rate automatically
B. To add noise to the input data
C. To randomly disable neurons during training to prevent overfitting
D. To speed up the training process by skipping layers
Solution
Step 1: Understand dropout's role in training
Dropout randomly disables neurons during training to reduce overfitting by preventing co-adaptation of neurons.
Step 2: Compare options with dropout purpose
Only To randomly disable neurons during training to prevent overfitting correctly describes dropout's function; others describe unrelated concepts.
Final Answer:
To randomly disable neurons during training to prevent overfitting -> Option C
Quick Check:
Dropout = random neuron disabling [OK]
Hint: Dropout disables neurons randomly during training only [OK]
Common Mistakes:
Thinking dropout speeds up training
Confusing dropout with data augmentation
Believing dropout changes learning rate
2. Which of the following is the correct way to create a dropout layer with 30% dropout rate in PyTorch?
easy
A. nn.Dropout(30)
B. nn.Dropout(p=30)
C. nn.Dropout(rate=0.3)
D. nn.Dropout(0.3)
Solution
Step 1: Check PyTorch dropout syntax
The dropout layer takes a float between 0 and 1 as the probability of dropout, passed as the first argument or named 'p'.
Step 2: Validate each option
nn.Dropout(0.3) uses nn.Dropout(0.3) which is correct. nn.Dropout(p=30) uses p=30 (invalid, should be 0.3). nn.Dropout(rate=0.3) uses 'rate' which is not a valid argument. nn.Dropout(30) passes 30 (integer) which is invalid.
Final Answer:
nn.Dropout(0.3) -> Option D
Quick Check:
Dropout probability is float 0-1 [OK]
Hint: Dropout probability is a float between 0 and 1 [OK]
D. An error because dropout is disabled in eval mode
Solution
Step 1: Understand dropout behavior in eval mode
Dropout disables neuron dropping during evaluation mode and passes input unchanged.
Step 2: Analyze output_eval value
Since layer.eval() is called before output_eval, the output will be the same as input: all ones tensor.
Final Answer:
A tensor of all ones: tensor([1., 1., 1., 1.]) -> Option A
Quick Check:
Dropout off in eval mode = input unchanged [OK]
Hint: Dropout disables only in eval mode, output equals input [OK]
Common Mistakes:
Expecting dropout to apply in eval mode
Confusing train() and eval() modes
Thinking dropout outputs zeros always
4. You wrote this PyTorch code but the dropout layer seems to have no effect during training:
import torch.nn as nn
layer = nn.Dropout(0.4)
output = layer(input_tensor)
What is the most likely reason dropout is not working as expected?
medium
A. Dropout only works on GPU tensors
B. You forgot to call layer.train() to enable dropout
C. The dropout probability 0.4 is too low to see effect
D. You need to call layer.eval() to activate dropout
Solution
Step 1: Recall dropout behavior in train vs eval modes
Dropout only disables neurons during training mode. In eval mode, dropout is disabled.
Step 2: Identify missing train mode call
If layer.train() is not called (e.g., after a previous layer.eval()), the layer stays in eval mode, so dropout has no effect.
Final Answer:
You forgot to call layer.train() to enable dropout -> Option B
Quick Check:
Dropout active only in train mode [OK]
Hint: Call train() to activate dropout during training [OK]
Common Mistakes:
Assuming dropout works without train() mode
Thinking dropout depends on tensor device
Calling eval() instead of train()
5. You want to add dropout to a neural network to reduce overfitting. Which of the following is the best practice when using nn.Dropout in your model?
hard
A. Apply dropout only during training and disable it during evaluation
B. Apply dropout during both training and evaluation for consistency
C. Apply dropout only during evaluation to test robustness
D. Apply dropout only to the input layer and never to hidden layers
Solution
Step 1: Understand dropout's intended use
Dropout is designed to randomly disable neurons during training to prevent overfitting.
Step 2: Recall dropout behavior during evaluation
During evaluation, dropout is disabled to use the full network for predictions.
Step 3: Evaluate options
Apply dropout only during training and disable it during evaluation correctly states dropout is applied only during training. Options B and C are incorrect because dropout should not be active during evaluation. Apply dropout only to the input layer and never to hidden layers is incorrect because dropout can be applied to hidden layers as well.
Final Answer:
Apply dropout only during training and disable it during evaluation -> Option A
Quick Check:
Dropout active in train, off in eval [OK]
Hint: Dropout off during eval, on during training [OK]