Bird
Raised Fist0
PyTorchml~15 mins

Tensor creation (torch.tensor, zeros, ones, rand) in PyTorch - ML Experiment: Train & Evaluate

Choose your learning style10 modes available
Experiment - Tensor creation (torch.tensor, zeros, ones, rand)
Problem:You want to create different types of tensors in PyTorch for a simple neural network input. Currently, you only use torch.tensor with fixed values.
Current Metrics:You can create tensors with torch.tensor but struggle to create tensors filled with zeros, ones, or random values easily.
Issue:Limited tensor creation methods slow down experimentation and data preparation.
Your Task
Learn to create tensors using torch.zeros, torch.ones, and torch.rand to generate tensors of desired shapes and values.
Use PyTorch functions only for tensor creation.
Create tensors of shape (3, 4) for all methods.
Hint 1
Hint 2
Hint 3
Hint 4
Solution
PyTorch
import torch

# Create tensor from fixed values
fixed_tensor = torch.tensor([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

# Create tensor filled with zeros
zeros_tensor = torch.zeros((3, 4))

# Create tensor filled with ones
ones_tensor = torch.ones((3, 4))

# Create tensor with random values between 0 and 1
rand_tensor = torch.rand((3, 4))

print('Fixed tensor:\n', fixed_tensor)
print('Zeros tensor:\n', zeros_tensor)
print('Ones tensor:\n', ones_tensor)
print('Random tensor:\n', rand_tensor)
Added torch.zeros to create a tensor filled with zeros.
Added torch.ones to create a tensor filled with ones.
Added torch.rand to create a tensor with random values.
Kept torch.tensor for fixed value tensor creation.
Results Interpretation

Before: Only torch.tensor was used, limiting tensor creation to fixed values.

After: Used torch.zeros, torch.ones, and torch.rand to create tensors filled with zeros, ones, and random values respectively, all with shape (3, 4).

Using different PyTorch tensor creation functions helps quickly generate tensors with desired values and shapes, making data preparation and experimentation easier.
Bonus Experiment
Try creating tensors with different data types like integers and floats using the dtype parameter.
💡 Hint
Use the dtype argument in tensor creation functions, e.g., torch.ones((3,4), dtype=torch.int32).

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