Challenge - 5 Problems
PyTorch vs TensorFlow Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate2:00remaining
Key difference in execution style between PyTorch and TensorFlow
Which statement best describes the main difference in how PyTorch and TensorFlow execute operations?
Attempts:
2 left
💡 Hint
Think about how each framework builds and runs computations during model training.
✗ Incorrect
PyTorch runs operations immediately (eager execution), making debugging easier. TensorFlow originally used static graphs but added eager mode later.
❓ Model Choice
intermediate2:00remaining
Choosing framework for dynamic neural networks
You want to build a neural network where the structure changes during training based on input data. Which framework is generally better suited for this?
Attempts:
2 left
💡 Hint
Consider which framework builds the graph on the fly during execution.
✗ Incorrect
PyTorch builds computation graphs dynamically during execution, making it easier to create models that change structure.
❓ Metrics
advanced2:00remaining
Comparing training speed metrics
You train the same model architecture on the same dataset using PyTorch and TensorFlow. Which metric would best compare their training speed fairly?
Attempts:
2 left
💡 Hint
Focus on measuring speed, not accuracy or code complexity.
✗ Incorrect
Training time for a fixed number of epochs directly measures speed, while accuracy or code length do not.
🔧 Debug
advanced2:00remaining
Identifying cause of slower training in TensorFlow
You notice your TensorFlow model trains slower than the PyTorch version. Which of these is a likely cause?
Attempts:
2 left
💡 Hint
Think about how TensorFlow executes graphs and what might slow it down.
✗ Incorrect
If TensorFlow runs in graph mode but graph optimizations are off, it can be slower. PyTorch uses eager mode by default.
❓ Predict Output
expert3:00remaining
Output difference in simple tensor operation
What is the output of this PyTorch code snippet?
import torch
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = x * 2
y = y.mean()
y.backward()
print(x.grad)
PyTorch
import torch x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True) y = x * 2 y = y.mean() y.backward() print(x.grad)
Attempts:
2 left
💡 Hint
Recall how gradients are computed for mean of scaled tensor.
✗ Incorrect
The gradient of y = mean(x * 2) with respect to x is 2 divided by number of elements (3), so each element's gradient is 2/3 ≈ 0.6667.