Two-Dimensional Tensors in Pytorch
Last Updated :
30 Aug, 2021
PyTorch is a python library developed by Facebook to run and train machine learning and deep learning models. In PyTorch everything is based on tensor operations.
Two-dimensional tensors are nothing but matrices or vectors of two-dimension with specific datatype, of n rows and n columns.
Representation: A two-dimensional tensor has the below representation.
torch.tensor([[3,2,1]
[6,5,4]
[9,8,7]])
Creation of Two-Dimensional Tensors:
We can create a tensor by passing a list of data, or randomly generating values with randn and also with arrange function that takes values within certain intervals.
Example :
Python3
import torch
y = torch.tensor([ 2.5 , 5.6 , 8.1 , 4.6 , 3.2 , 6.7 ])
x = y.view( 2 , 3 )
print ( 'First tensor is: {}' . format (x), '\nSize of it:{}' . format (x.size()),
'\ntype of tensor:{}\n' . format (x.dtype))
x2 = torch.randn( 2 , 2 )
print ( 'Second tensor is: {}' . format (x2), '\nSize of it:{}' . format (x2.size()),
'\ntype of tensor:{}\n' . format (x2.dtype))
y1 = torch.arrange( 0 , 8 )
x1 = y1.view( 4 , 2 )
print ( 'Third tensor is: {}' . format (x1), '\nSize of it:{}' . format (x1.size()),
'\ntype of tensor:{}' . format (x1.dtype))
|
Output:
First tensor is: tensor([[2.5000, 5.6000, 8.1000],
[4.6000, 3.2000, 6.7000]])
Size of it:torch.Size([2, 3])
type of tensor:torch.float32
Second tensor is: tensor([[1.2532, 1.3558],
[0.5496, 1.7828]])
Size of it:torch.Size([2, 2])
type of tensor:torch.float32
Third tensor is: tensor([[0, 1],
[2, 3],
[4, 5],
[6, 7]])
Size of it:torch.Size([4, 2])
type of tensor:torch.int64
Multiplication of tensors
Multiplication of tensors can be either element-wise multiplication(multiplying each element by element) or metrics multiplication (multiplying the corresponding column with the corresponding row). In deep learning, we use the concept of metrics multiplication with the required size.
Example :
Python3
import torch
a = torch.arrange( 0 , 9 )
a = mat_a.view( 3 , 3 )
b = torch.arrange( 0 , 9 )
b = mat_b.view( 3 , 3 )
mat_mul = torch.matmul(mat_a,mat_b)
elem_mul = torch.mul(mat_a,mat_b)
print ( 'Tensor after elementwise multiplication:{}' . format (elem_mul),
'\n Tensor after matrix multiplication: {}' . format (mat_mul))
|
Output:
Tensor after elementwise multiplication:tensor([[ 0, 1, 4],
[ 9, 16, 25],
[36, 49, 64]])
Tensor after matrix multiplication: tensor([[ 15, 18, 21],
[ 42, 54, 66],
[ 69, 90, 111]])
Accessing elements:
In the tensor, we can access any column or row values through slicing, and for the particular elements we use indexing. To obtain only the value in the tensor we use .item().
Example :
Python3
import torch
x4 = torch.arrange( 4 , 13 )
y4 = x4.view( 3 , 3 )
print ( 'First column has the values:{}' . format (y4[:, 0 ]))
print ( 'Second row has the values:{}' . format (y4[ 1 ,:]))
print ( 'Data at the index 1,2 :{}' . format (y4[ 1 ][ 2 ]))
|
Output:
First column has the values:tensor([ 4, 7, 10])
Second row has the values:tensor([7, 8, 9])
Data at the index 1,2 :9
Three-dimensional tensors:
Three-dimensional tensors are nothing but matrices or vectors of rank 3. A 3d tensor is created by adding another level with brackets to that of the two-dimensional vector. In image processing, we use RGB images that have 3 dimensions of color pixels.
Python3
import torch
x = torch.tensor([[[ 11 , 12 , 13 ],[ 14 , 15 , 16 ],[ 17 , 18 , 19 ]]])
x1 = torch.arrange( 10 , 19 )
x1 = x1.view( 1 , 3 , 3 )
print (x, '\n' ,x1)
|
Output:
tensor([[[11, 12, 13],
[14, 15, 16],
[17, 18, 19]]])
tensor([[[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]])
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...