0
0
TensorFlowml~20 mins

Prefetching for performance in TensorFlow - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Prefetching Pro
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Why use prefetching in TensorFlow data pipelines?
Which of the following best explains the main benefit of using prefetch() in a TensorFlow data pipeline?
AIt allows the model to train on multiple GPUs simultaneously.
BIt overlaps the preprocessing and model execution to reduce input latency.
CIt increases the batch size automatically during training.
DIt saves the dataset to disk for faster future loading.
Attempts:
2 left
💡 Hint
Think about how data loading and model training can happen at the same time.
Predict Output
intermediate
2:00remaining
Output of dataset with and without prefetch
Consider the following TensorFlow code that creates a dataset and applies map() and prefetch(). What will be the output when iterating over the dataset?
TensorFlow
import tensorflow as tf

# Create a dataset of numbers 0 to 4
raw_dataset = tf.data.Dataset.range(5)

# Map function to square the numbers
mapped_dataset = raw_dataset.map(lambda x: x * x)

# Prefetch 2 elements
prefetched_dataset = mapped_dataset.prefetch(2)

for item in prefetched_dataset:
    print(item.numpy())
A[0, 1, 4, 9, 16]
B[0, 1, 2, 3, 4]
CRaises a TypeError because prefetch argument must be a tf.data.AUTOTUNE or integer
D[0, 1, 4, 9]
Attempts:
2 left
💡 Hint
Prefetch does not change the data values, only the loading behavior.
Hyperparameter
advanced
1:30remaining
Choosing the prefetch buffer size
In TensorFlow, what is the effect of setting the prefetch buffer size to tf.data.AUTOTUNE compared to a fixed integer like 2?
AAUTOTUNE lets TensorFlow decide the optimal buffer size dynamically, while 2 prefetches exactly two batches.
BAUTOTUNE prefetches only one batch, while 2 prefetches two batches.
CAUTOTUNE disables prefetching entirely, while 2 prefetches two batches.
DAUTOTUNE causes a runtime error because it is not a valid buffer size.
Attempts:
2 left
💡 Hint
Think about how TensorFlow can optimize performance automatically.
🔧 Debug
advanced
2:00remaining
Identifying the cause of slow training despite prefetching
A TensorFlow model is training slowly even though the dataset uses prefetch(tf.data.AUTOTUNE). Which of the following is the most likely cause?
AThe model has too few layers, causing underfitting.
BThe optimizer is not compatible with prefetching.
CPrefetching only works with batch size 1.
DThe dataset's map function is very slow and blocks the pipeline.
Attempts:
2 left
💡 Hint
Prefetching helps if data loading is the bottleneck, but not if preprocessing is slow.
Model Choice
expert
2:30remaining
Best data pipeline design for maximizing GPU utilization
You want to train a deep learning model on a GPU with a large dataset that requires heavy preprocessing. Which data pipeline design will most likely maximize GPU utilization?
AUse <code>dataset.shuffle()</code> with a small buffer and no prefetch.
BUse <code>dataset.repeat()</code> without batching or prefetching.
CUse <code>dataset.map()</code> with <code>num_parallel_calls=tf.data.AUTOTUNE</code> and <code>prefetch(tf.data.AUTOTUNE)</code>.
DUse <code>dataset.batch()</code> only, no prefetch or parallel map.
Attempts:
2 left
💡 Hint
Consider how to keep the GPU busy while data is prepared.