Batch size is the number of samples processed together before the model updates its weights. It controls how many examples the model sees at once.
Click to reveal answer
beginner
Why do we shuffle data during training?
Shuffling mixes the order of data samples to prevent the model from learning patterns based on the order. It helps the model generalize better.
Click to reveal answer
intermediate
How does a large batch size affect training speed and memory?
A large batch size speeds up training by processing more samples at once but uses more memory. It may also affect how well the model learns.
Click to reveal answer
intermediate
What is the effect of not shuffling data in each training epoch?
Not shuffling can cause the model to see data in the same order every time, which might lead to overfitting or poor generalization.
Click to reveal answer
beginner
In PyTorch, how do you enable shuffling when creating a DataLoader?
You set the argument shuffle=True in the DataLoader constructor to shuffle data at every epoch.
Click to reveal answer
What does batch size control during training?
ANumber of layers in the model
BNumber of samples processed before updating model weights
CLearning rate of the optimizer
DNumber of epochs
✗ Incorrect
Batch size controls how many samples the model processes before updating its weights.
Why is shuffling data important during training?
ATo prevent the model from learning order-based patterns
BTo reduce memory usage
CTo speed up training
DTo increase batch size
✗ Incorrect
Shuffling prevents the model from learning patterns based on the order of data.
What happens if batch size is too large?
ATraining becomes faster but uses more memory
BTraining becomes slower and uses less memory
CModel accuracy always improves
DModel stops training
✗ Incorrect
Large batch sizes speed up training but require more memory.
In PyTorch DataLoader, how do you shuffle data?
Ashuffle=False
Bnum_workers=0
Cshuffle=True
Dbatch_size=1
✗ Incorrect
Setting shuffle=True enables shuffling of data each epoch.
What is a possible risk of not shuffling data during training?
ADataLoader crashes
BModel trains faster
CBatch size increases automatically
DModel may overfit or generalize poorly
✗ Incorrect
Not shuffling can cause the model to overfit or generalize poorly.
Explain what batch size is and how it affects training speed and memory.
Think about how many samples the model sees at once and what happens if you change that number.
You got /3 concepts.
Describe why shuffling data is important during training and how to enable it in PyTorch.
Consider what happens if data order stays the same every epoch.
You got /3 concepts.
Practice
(1/5)
1. What does the batch_size parameter control in a PyTorch DataLoader?
easy
A. The number of samples processed before the model updates its weights
B. The total number of samples in the dataset
C. The order in which samples are loaded
D. The number of features in each sample
Solution
Step 1: Understand batch size meaning
Batch size defines how many samples the model processes before updating its weights during training.
Step 2: Differentiate from other parameters
It is not the total dataset size, order of samples, or feature count, but the chunk size for training updates.
Final Answer:
The number of samples processed before the model updates its weights -> Option A
Quick Check:
Batch size = samples per update [OK]
Hint: Batch size = samples per training step [OK]
Common Mistakes:
Confusing batch size with dataset size
Thinking batch size controls feature count
Mixing batch size with shuffling
2. Which of the following is the correct way to create a DataLoader with batch size 32 and shuffling enabled?
easy
A. DataLoader(dataset, batch=32, shuffle=True)
B. DataLoader(dataset, shuffle=32, batch_size=True)
C. DataLoader(dataset, batch_size=32, shuffle=True)
D. DataLoader(dataset, batch_size=True, shuffle=32)
Solution
Step 1: Recall DataLoader parameters
PyTorch DataLoader uses batch_size for batch size and shuffle as a boolean for shuffling.
Step 2: Check parameter names and types
DataLoader(dataset, batch_size=32, shuffle=True) correctly uses batch_size=32 and shuffle=True. Others misuse parameter names or types.
Final Answer:
DataLoader(dataset, batch_size=32, shuffle=True) -> Option C
Quick Check:
Correct parameter names and types [OK]
Hint: Use exact parameter names: batch_size and shuffle [OK]
Common Mistakes:
Swapping parameter names
Using wrong data types for parameters
Omitting required parameters
3. Given the code below, what will be the output length of each batch printed?
from torch.utils.data import DataLoader, TensorDataset
import torch
data = torch.arange(10)
dataset = TensorDataset(data)
dataloader = DataLoader(dataset, batch_size=4, shuffle=False)
for batch in dataloader:
print(len(batch[0]))
medium
A. 10
B. 4, 4, 2
C. 5, 5
D. 4, 3, 3
Solution
Step 1: Understand dataset and batch size
Dataset has 10 samples. Batch size is 4, so batches will be split into groups of 4 samples each.
Step 2: Calculate batch lengths
First two batches have 4 samples each (4 + 4 = 8), last batch has remaining 2 samples (10 - 8 = 2).
Final Answer:
4, 4, 2 -> Option B
Quick Check:
10 samples split by 4 = 4,4,2 [OK]
Hint: Last batch may be smaller if dataset size not divisible by batch size [OK]
Common Mistakes:
Assuming all batches have equal size
Ignoring leftover samples in last batch
Confusing batch length with dataset length
4. What is wrong with this DataLoader code snippet?
from torch.utils.data import DataLoader
dataloader = DataLoader(dataset, batch_size=0, shuffle=True)
medium
A. Batch size cannot be zero; it must be a positive integer
B. Shuffle cannot be true when batch size is set
C. Dataset must be a list, not a variable named dataset
D. DataLoader requires batch_size to be a float
Solution
Step 1: Check batch_size validity
Batch size must be a positive integer greater than zero to form batches.
Step 2: Validate other parameters
Shuffle can be True regardless of batch size. Dataset variable name is valid. Batch size must be int, not float.
Final Answer:
Batch size cannot be zero; it must be a positive integer -> Option A
Quick Check:
Batch size > 0 required [OK]
Hint: Batch size must be positive integer, never zero [OK]
Common Mistakes:
Setting batch size to zero
Confusing shuffle restrictions
Wrong data type for batch size
5. You have a dataset of 103 samples. You want to train a model with batch size 20 and shuffle enabled. How many batches will the DataLoader produce each epoch, and why is shuffling important here?
hard
A. 103 batches; shuffling splits data into single samples
B. 5 batches; shuffling is not needed when batch size is large
C. 20 batches; shuffling controls batch size
D. 6 batches; shuffling helps the model see data in different orders to avoid bias
Solution
Step 1: Calculate number of batches
103 samples with batch size 20 means 5 full batches (20*5=100) plus 1 batch with 3 samples, total 6 batches.
Step 2: Understand shuffling importance
Shuffling mixes data order each epoch to prevent the model from learning patterns based on data order, reducing bias.
Final Answer:
6 batches; shuffling helps the model see data in different orders to avoid bias -> Option D