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 main difference between CPU and GPU in tensor placement?
CPU handles general tasks and is good for sequential operations, while GPU is specialized for parallel tasks, making it faster for large tensor operations in machine learning.
Click to reveal answer
beginner
How does TensorFlow decide where to place a tensor by default?
TensorFlow tries to place tensors on the GPU if available for faster computation; otherwise, it uses the CPU.
Click to reveal answer
intermediate
What is the TensorFlow command to explicitly place a tensor on the GPU?
Use with tf.device('/GPU:0'): to place tensors or operations explicitly on the first GPU device.
Click to reveal answer
intermediate
Why might you want to place tensors on the CPU instead of the GPU?
You might place tensors on the CPU if the GPU memory is limited, or for operations that are not efficient on GPU, like small or simple computations.
Click to reveal answer
advanced
What happens if you try to perform an operation on tensors placed on different devices?
TensorFlow will automatically copy data between devices, but this can slow down performance due to data transfer overhead.
Click to reveal answer
Which device is generally faster for large matrix multiplications in TensorFlow?
AHard disk
BGPU
CCPU
DRAM
✗ Incorrect
GPUs are designed for parallel processing, making them faster for large matrix operations.
How do you specify a tensor to be placed on the CPU in TensorFlow?
Awith tf.device('/DISK:0'):
Bwith tf.device('/GPU:0'):
Cwith tf.device('/TPU:0'):
Dwith tf.device('/CPU:0'):
✗ Incorrect
The '/CPU:0' device string places tensors on the CPU.
What is a downside of placing tensors on different devices for operations?
ATensors get deleted
BTensorFlow crashes
CAutomatic data transfer slows performance
DNo downside
✗ Incorrect
Data transfer between devices adds overhead and slows down computation.
If no GPU is available, where does TensorFlow place tensors by default?
ACPU
BGPU
CTPU
DDisk
✗ Incorrect
TensorFlow defaults to CPU if no GPU is found.
Which TensorFlow function helps you check available devices?
Atf.config.list_physical_devices()
Btf.device()
Ctf.Tensor()
Dtf.run()
✗ Incorrect
tf.config.list_physical_devices() lists available hardware devices like CPU and GPU.
Explain how TensorFlow manages tensor placement between CPU and GPU and why this matters.
Think about speed and where computations happen.
You got /4 concepts.
Describe a situation where placing tensors on CPU might be better than GPU.
Consider resource limits and operation size.
You got /4 concepts.
Practice
(1/5)
1. What is the main reason to use tf.device() in TensorFlow when working with GPUs and CPUs?
easy
A. To change the data type of a tensor
B. To save the model to disk
C. To initialize variables automatically
D. To specify whether a tensor or operation runs on CPU or GPU
Solution
Step 1: Understand the purpose of tf.device()
This function is used to tell TensorFlow where to place tensors or operations, either on CPU or GPU.
Step 2: Compare options with the function's purpose
Changing data types, initializing variables, or saving models are unrelated to device placement.
Final Answer:
To specify whether a tensor or operation runs on CPU or GPU -> Option D
Quick Check:
tf.device() controls device placement = B [OK]
Hint: tf.device() sets CPU or GPU for tensors [OK]
Common Mistakes:
Confusing device placement with data type changes
Thinking tf.device() initializes variables
Assuming tf.device() saves models
2. Which of the following is the correct syntax to place a tensor on GPU device 0 in TensorFlow?
easy
A. with tf.device('/GPU:0'):
x = tf.constant([1, 2, 3])
B. with tf.device('device:GPU0'):
x = tf.constant([1, 2, 3])
C. with tf.device('GPU0'):
x = tf.constant([1, 2, 3])
D. with tf.device('/CPU:0'):
x = tf.constant([1, 2, 3])
TensorFlow uses '/GPU:0' to refer to the first GPU device.
Step 2: Check each option's device string
The correct format for GPU device 0 is with tf.device('/GPU:0'):
x = tf.constant([1, 2, 3]). Formats like '/CPU:0', 'device:GPU0', and 'GPU0' are incorrect.
Final Answer:
with tf.device('/GPU:0'):
x = tf.constant([1, 2, 3]) -> Option A
Quick Check:
Correct GPU device string = D [OK]
Hint: Use '/GPU:0' to specify first GPU device [OK]
Common Mistakes:
Using 'GPU0' without slash and colon
Confusing CPU and GPU device strings
Missing the 'with' context for tf.device
3. What will be the output device placement of the tensor x in the following code if a GPU is available?
with tf.device('/CPU:0'):
x = tf.constant([1, 2, 3])
print(x.device)
medium
A. It will show a GPU device string like '/job:localhost/replica:0/task:0/device:GPU:0'
B. It will show a CPU device string like '/job:localhost/replica:0/task:0/device:CPU:0'
C. It will raise an error because GPU is available
D. It will show an empty string
Solution
Step 1: Analyze the device context used
The code uses with tf.device('/CPU:0'), so the tensor x is forced to be on CPU.
Step 2: Understand device string output
Printing x.device will show the full device string indicating CPU, regardless of GPU availability.
Final Answer:
It will show a CPU device string like '/job:localhost/replica:0/task:0/device:CPU:0' -> Option B
4. Identify the error in this TensorFlow code snippet that tries to place a tensor on GPU:
with tf.device('/GPU:1'):
x = tf.constant([4, 5, 6])
print(x.device)
Assuming the system has only one GPU device.
medium
A. Syntax error in tf.device string
B. No error, code runs fine on GPU 1
C. Error because GPU device '/GPU:1' does not exist
D. TensorFlow automatically switches to CPU without error
Solution
Step 1: Check available GPU devices
The system has only one GPU, which is '/GPU:0'. Trying to use '/GPU:1' refers to a non-existent second GPU.
Step 2: Understand TensorFlow behavior on invalid device
TensorFlow raises an error if the specified device does not exist.
Final Answer:
Error because GPU device '/GPU:1' does not exist -> Option C
Quick Check:
Invalid GPU index causes error = A [OK]
Hint: Check GPU count before using device index [OK]
Common Mistakes:
Assuming GPU indices start at 1
Expecting automatic fallback to CPU
Ignoring device existence errors
5. You want to speed up a large matrix multiplication in TensorFlow using GPU if available, but fall back to CPU if no GPU exists. Which code snippet correctly implements this logic?
hard
A. if tf.config.list_physical_devices('GPU'):
with tf.device('/GPU:0'):
result = tf.matmul(a, b)
else:
with tf.device('/CPU:0'):
result = tf.matmul(a, b)
B. with tf.device('/GPU:0'):
result = tf.matmul(a, b)
C. result = tf.matmul(a, b) # TensorFlow auto-chooses device
D. with tf.device('/CPU:0'):
result = tf.matmul(a, b)
Solution
Step 1: Check for GPU availability
Use tf.config.list_physical_devices('GPU') to detect if GPU exists.
Step 2: Use conditional device placement
If GPU exists, place operation on '/GPU:0', else place on '/CPU:0' to ensure fallback.
Step 3: Verify other options
Forcing GPU without checking availability risks errors if no GPU. Auto-placement lacks explicit conditional control. Forcing CPU ignores available GPU.
Final Answer:
if tf.config.list_physical_devices('GPU'):
with tf.device('/GPU:0'):
result = tf.matmul(a, b)
else:
with tf.device('/CPU:0'):
result = tf.matmul(a, b) -> Option A
Quick Check:
Conditional device placement with fallback = A [OK]
Hint: Check GPU presence before device placement [OK]