#
Creating Tensors in PyTorch
Note: Before executing any code , ensure that you have completed the PyTorch setup.
If you're using Google Colab, there's no need to worry PyTorch and other necessary libraries are pre-installed, so everything should work seamlessly.
Let’s begin by importing PyTorch and verifying the version we’re working with.
import torch
torch.__version__
You can create tensors using various methods in PyTorch , let’s break down different types of tensors:
#
0-D Tensor (Scalar)
A scalar is a single number. It’s the simplest form of a tensor.
import torch
# Create a 0-D tensor (scalar)
scalar = torch.tensor(5)
print(scalar)
Output:
tensor(5)
#
1-D Tensor (Vector)
A vector is a one-dimensional tensor that can hold multiple numbers in a single line.
import torch
# Create a 1-D tensor (vector)
vector = torch.tensor([1, 2, 3, 4])
print(vector)
Output:
tensor([1, 2, 3, 4])
#
2-D Tensor (Matrix)
A matrix is a two-dimensional tensor. It has rows and columns, like a table of numbers.
import torch
# Create a 2-D tensor (matrix)
matrix = torch.tensor([[1, 2], [3, 4]])
print(matrix)
Output:
tensor([[1, 2],
[3, 4]])
#
3-D Tensor
A 3-D tensor is like a stack of matrices. It has depth, along with rows and columns.
import torch
# Create a 3-D tensor
tensor_3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(tensor_3d)
Output:
tensor([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
Let’s review the key points
- 0-D Tensor (Scalar): A single number.
- 1-D Tensor (Vector): A list of numbers.
- 2-D Tensor (Matrix): A grid of numbers with rows and columns.
- 3-D Tensor: A stack of matrices.
#
Random Tensors
In machine learning, tensors are often initialized with random values. This randomness is useful for initializing model parameters before training. PyTorch provides a function to generate tensors with random numbers:
import torch
# Create a 2x3 tensor with random values between 0 and 1
random_tensor = torch.rand(2, 3)
print("Random Tensor:")
print(random_tensor)
Output:
Random Tensor:
tensor([[0.5647, 0.1234, 0.9987],
[0.4568, 0.7890, 0.3456]])
In this example, torch.rand(2, 3) creates a tensor of shape [2, 3] with random values between 0 and 1.
#
Zeros and Ones
Sometimes, you need tensors filled with zeros or ones, especially when initializing weights or masks. PyTorch offers functions to create such tensors:
import torch
# Create a 2x3 tensor filled with zeros
zeros_tensor = torch.zeros(2, 3)
print("Zeros Tensor:")
print(zeros_tensor)
# Create a 2x3 tensor filled with ones
ones_tensor = torch.ones(2, 3)
print("Ones Tensor:")
print(ones_tensor)
Output:
Zeros Tensor:
tensor([[0., 0., 0.],
[0., 0., 0.]])
Ones Tensor:
tensor([[1., 1., 1.],
[1., 1., 1.]])
Here, torch.zeros(2, 3) creates a tensor of shape [2, 3] filled with zeros, while torch.ones(2, 3) creates one filled with ones.
#
Creating a Range of Values
Sometimes, you might need to create a tensor with a range of values. This is useful for creating sequences or grids of values:
import torch
# Create a tensor with values from 0 to 4
range_tensor = torch.arange(5)
print("Range Tensor:")
print(range_tensor)
Output:
Range Tensor:
tensor([0, 1, 2, 3, 4])
The torch.arange(5) function creates a tensor with values [0, 1, 2, 3, 4].
Sure! Here are two exercises focusing on 1-D and 2-D tensors, with their solutions provided:
#
Exercise 1: Creating and Inspecting Tensors
Task:
- Create a 2-D tensor with the following values:
[[2, 4, 6], [8, 10, 12]] - Create a 1-D tensor with values ranging from 0 to 4.
- Print both tensors .
import torch
# 1. Create a 2-D tensor
matrix = torch.tensor([[2, 4, 6], [8, 10, 12]])
print("2-D Tensor:")
print(matrix)
# 2. Create a 1-D tensor with values from 0 to 4
vector = torch.arange(5)
print("1-D Tensor:")
print(vector)
#
Exercise 2: Tensor Initialization and Operations
Task:
- Create a 2-D tensor of shape
[3, 2]filled with zeros. - Create a 2-D tensor of shape
[3, 2]filled with ones. - Create a 1-D tensor with 6 random values between 0 and 1.
- Print all three tensors.
import torch
# 1. Create a 2-D tensor filled with zeros
zeros_tensor = torch.zeros(3, 2)
print("2-D Tensor filled with zeros:")
print(zeros_tensor)
# 2. Create a 2-D tensor filled with ones
ones_tensor = torch.ones(3, 2)
print("2-D Tensor filled with ones:")
print(ones_tensor)
# 3. Create a 1-D tensor with random values between 0 and 1
random_tensor = torch.rand(6)
print("1-D Tensor with random values:")
print(random_tensor)