Bird
Raised Fist0
PyTorchml~8 mins

Tensor creation (torch.tensor, zeros, ones, rand) in PyTorch - Model Metrics & Evaluation

Choose your learning style10 modes available
Metrics & Evaluation - Tensor creation (torch.tensor, zeros, ones, rand)
Which metric matters for Tensor creation and WHY

When creating tensors, the main goal is to ensure the data is correctly represented for your model. The key "metric" here is correctness of shape and values. This means the tensor must have the right size, data type, and initial values to avoid errors during training or inference. While not a traditional metric like accuracy, this correctness is critical because a wrong tensor shape or values can cause your model to fail or learn poorly.

Confusion matrix or equivalent visualization

Tensor creation itself does not have a confusion matrix. But imagine you create a tensor for labels or inputs incorrectly, it can lead to wrong predictions. For example, if you create a tensor of zeros instead of random values for inputs, the model might always predict the same output.

    Example tensor shapes:
    torch.tensor([1, 2, 3])  # shape: (3,)
    torch.zeros((2, 3))      # shape: (2, 3)
    torch.ones((4, 4))       # shape: (4, 4)
    torch.rand((2, 2))       # shape: (2, 2) with random values
    
Precision vs Recall tradeoff (or equivalent)

For tensor creation, the tradeoff is between initialization simplicity and model performance. Using zeros or ones is simple but can cause the model to learn slowly or get stuck. Using rand (random values) helps the model start learning better but adds randomness. Choosing the right tensor creation method affects how well and fast your model learns.

Example:

  • Zeros: Easy to create but may cause no learning if used for weights.
  • Ones: Similar risk as zeros, can cause symmetry in learning.
  • Random: Helps break symmetry and improves learning but adds variability.
What "good" vs "bad" metric values look like for this use case

Good tensor creation means:

  • Correct shape matching model input/output requirements.
  • Appropriate initial values (random for weights, exact values for labels).
  • No shape mismatch errors during training.

Bad tensor creation means:

  • Wrong shape causing runtime errors.
  • Using zeros or ones for weights causing poor learning.
  • Incorrect data types causing unexpected behavior.
Metrics pitfalls
  • Shape mismatch: Creating tensors with wrong dimensions leads to errors.
  • Wrong initialization: Using zeros or ones for weights can cause the model to not learn.
  • Data type errors: Using integers instead of floats for inputs or weights can cause issues.
  • Ignoring randomness: Not setting random seeds can cause non-reproducible results.
Self-check question

Your model training fails with a shape mismatch error. You realize you created input tensors with shape (10, 5) but the model expects (10, 3). Is your tensor creation correct? What should you do?

Answer: No, the tensor shape is incorrect. You should create tensors with the shape (10, 3) to match the model's expected input shape. This ensures the model can process the data without errors.

Key Result
Correct tensor shape and initialization are key to successful model training and avoiding errors.

Practice

(1/5)
1. Which PyTorch function creates a tensor filled with zeros of a specified shape?
easy
A. torch.zeros()
B. torch.ones()
C. torch.rand()
D. torch.tensor()

Solution

  1. Step 1: Understand the purpose of each function

    torch.zeros() creates a tensor filled with zeros, torch.ones() creates ones, torch.rand() creates random values, and torch.tensor() converts data to tensor.
  2. Step 2: Match function to requirement

    Since the question asks for a tensor filled with zeros, torch.zeros() is the correct choice.
  3. Final Answer:

    torch.zeros() -> Option A
  4. Quick Check:

    Zeros tensor = torch.zeros() [OK]
Hint: Zeros tensor? Use torch.zeros() [OK]
Common Mistakes:
  • Confusing torch.ones() with zeros
  • Using torch.tensor() without data
  • Thinking torch.rand() creates zeros
2. Which of the following is the correct syntax to create a 2x3 tensor of ones in PyTorch?
easy
A. torch.ones{2, 3}
B. torch.ones([2 3])
C. torch.ones(2, 3)
D. torch.ones((2 3))

Solution

  1. Step 1: Check valid argument types for torch.ones()

    PyTorch accepts shape as separate ints or tuple/list. torch.ones(2, 3) uses separate ints (valid). torch.ones([2 3]) missing comma (syntax error). torch.ones{2, 3} invalid braces. torch.ones((2 3)) missing comma (syntax error).
  2. Step 2: Identify syntax errors

    Only torch.ones(2, 3) is valid Python syntax.
  3. Final Answer:

    torch.ones(2, 3) -> Option C
  4. Quick Check:

    Separate args syntax = torch.ones(2, 3) [OK]
Hint: Separate dimensions with commas: torch.ones(2, 3) [OK]
Common Mistakes:
  • Using curly braces instead of parentheses
  • Confusing list and tuple syntax
  • Missing commas between shape dimensions
3. What is the output shape and type of the tensor created by torch.rand(3, 2)?
medium
A. A tensor of shape (3, 2) filled with zeros
B. A tensor of shape (2, 3) with random integer values
C. A tensor of shape (3, 2) filled with ones
D. A tensor of shape (3, 2) with random float values between 0 and 1

Solution

  1. Step 1: Understand torch.rand() behavior

    torch.rand(3, 2) creates a tensor with shape (3, 2) filled with random floats between 0 and 1.
  2. Step 2: Compare options to expected output

    A tensor of shape (3, 2) with random float values between 0 and 1 matches the shape and value type. Options A, B, and D are incorrect because they describe wrong shapes or values.
  3. Final Answer:

    A tensor of shape (3, 2) with random float values between 0 and 1 -> Option D
  4. Quick Check:

    torch.rand() = random floats [OK]
Hint: torch.rand(shape) = random floats in [0,1) [OK]
Common Mistakes:
  • Thinking torch.rand() creates integers
  • Mixing up shape dimensions
  • Assuming torch.rand() creates zeros or ones
4. Identify the error in this code snippet:
import torch
t = torch.zeros(2 3)
medium
A. Missing comma between dimensions in torch.zeros()
B. torch.zeros() cannot create 2D tensors
C. torch.zeros() requires a list, not separate arguments
D. torch.zeros() needs dtype argument

Solution

  1. Step 1: Check syntax of torch.zeros() arguments

    The code uses torch.zeros(2 3) missing a comma between 2 and 3, which is a syntax error.
  2. Step 2: Validate other options

    torch.zeros() can create 2D tensors and accepts multiple int arguments or a tuple/list. dtype is optional.
  3. Final Answer:

    Missing comma between dimensions in torch.zeros() -> Option A
  4. Quick Check:

    Comma separates dimensions [OK]
Hint: Separate dimensions with commas: torch.zeros(2, 3) [OK]
Common Mistakes:
  • Omitting commas between shape dimensions
  • Thinking dtype is mandatory
  • Believing torch.zeros() can't create 2D tensors
5. You want to create a tensor from a Python list [[1,2], [3,4]] and then create a tensor of the same shape filled with ones. Which code correctly does this?
hard
A.
import torch
list_data = [[1,2], [3,4]]
t1 = torch.ones(list_data)
t2 = torch.tensor(t1.shape)
B.
import torch
list_data = [[1,2], [3,4]]
t1 = torch.tensor(list_data)
t2 = torch.ones(t1.shape)
C.
import torch
list_data = [[1,2], [3,4]]
t1 = torch.tensor(list_data)
t2 = torch.ones(len(t1))
D.
import torch
list_data = [[1,2], [3,4]]
t1 = torch.ones(len(list_data))
t2 = torch.tensor(t1.shape)

Solution

  1. Step 1: Create tensor from list

    torch.tensor(list_data) correctly converts the nested Python list to a (2,2) tensor.
  2. Step 2: Create tensor of ones with same shape

    torch.ones(t1.shape) creates a tensor filled with ones matching the shape of t1 ((2,2)).
  3. Step 3: Check other options for correctness

    import torch
    list_data = [[1,2], [3,4]]
    t1 = torch.ones(list_data)
    t2 = torch.tensor(t1.shape)
    misuses torch.ones() with nested list (ValueError),
    import torch
    list_data = [[1,2], [3,4]]
    t1 = torch.tensor(list_data)
    t2 = torch.ones(len(t1))
    uses length=2 instead of shape (creates (2,) not (2,2)),
    import torch
    list_data = [[1,2], [3,4]]
    t1 = torch.ones(len(list_data))
    t2 = torch.tensor(t1.shape)
    creates t1 wrong (ones not data) and t2 not ones tensor.
  4. Final Answer:

    Correctly create tensor and ones tensor with matching shape -> Option B
  5. Quick Check:

    Use tensor.shape for shape in torch.ones() [OK]
Hint: Use tensor.shape to match shape in torch.ones() [OK]
Common Mistakes:
  • Passing nested list directly to torch.ones()
  • Using len() instead of shape for multi-dim tensors
  • Confusing torch.tensor() and torch.ones() usage
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard