Open In App

How to perform element-wise multiplication on tensors in PyTorch?

Last Updated : 02 Mar, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we are going to see how to perform element-wise multiplication on tensors in PyTorch in Python. We can perform element-wise addition using torch.mul() method. 

This function also allows us to perform multiplication on the same or different dimensions of tensors. If tensors are different in dimensions so it will return the higher dimension tensor. we can also multiply a scalar quantity with a tensor using torch.mul() function.  

Syntax: torch.mul(input, other, *, out=None)

Parameters:

  • input: This is input tensor.
  • other: The value or tensor that is to be multiply to every element of tensor.
  • out: it is the output tensor, This is optional parameter.

Return: returns a new modified tensor..

Example 1: 

The following program is to perform multiplication on two single dimension tensors.

Python3




# import torch library
import torch
 
# define two tensors
tens_1 = torch.Tensor([1, 2, 3, 4, 5])
tens_2 = torch.Tensor([10, 20, 30, 40, 50])
 
# display tensors
print(" First Tensor: ", tens_1)
print(" Second Tensor: ", tens_2)
 
# multiply tensors
tens = torch.mul(tens_1, tens_2)
 
# display result after perform element wise multiplication
print(" After Element-wise multiplication: ", tens)


Output:

 First Tensor:  tensor([1., 2., 3., 4., 5.])

 Second Tensor:  tensor([10., 20., 30., 40., 50.])

 After Element-wise multiplication:  tensor([ 10.,  40.,  90., 160., 250.])

Example 2: 

The following program is to know how to multiply a scalar quantity to a tensor.

Python3




# import torch library
import torch
 
# define a tensors
tens_1 = torch.Tensor([100, 200, 300, 400, 500])
 
# display tensor
print(" First Tensor: ", tens_1)
 
# multiply a scalar tensors
tens = torch.mul(tens_1, 2)
 
# display result after perform element wise multiplication
print(" After multiply 2 in tensor: ", tens)


Output:

 First Tensor:  tensor([100., 200., 300., 400., 500.])

 After multiply 2 in tensor:  tensor([ 200.,  400.,  600.,  800., 1000.])

Example 3: 

The following program is to perform elements-wise multiplication on 2D tensors.

Python3




# import torch
import torch
 
# Define two 2D tensors
tens_1 = torch.Tensor([[10, 20], [30, 40]])
tens_2 = torch.Tensor([[1, 2], [3, 4]])
 
# display tensors
print(" First tensor:  ", tens_1)
print(" Second tensor:  ", tens_2)
 
# Multiply above two 2-D tensors
tens = torch.mul(tens_1, tens_2)
print(" After multiply 2D tensors: ", tens)


Output:

First tensor:   tensor([[10., 20.],[30., 40.]])
 Second tensor:   tensor([[1., 2.],[3., 4.]])
 After multiply 2D tensors:  tensor([[ 10.,  40.],[ 90., 160.]])

Example 4:

The following program is to shows how to perform elements-wise multiplication on two different dimension tensors.

Python3




# import torch
import torch
 
# Define two 2D tensors
tens_1 = torch.Tensor([[10, 20], [30, 40]])
tens_2 = torch.Tensor([2, 4])
 
# display tensors
print(" 2D tensor: ", tens_1)
print(" 1D tensor:  ", tens_2)
 
# Multiply above two 2-D tensors
tens = torch.mul(tens_1, tens_2)
print(" After multiply tensors: ", tens)


Output:

 2D tensor:  tensor([[10., 20.],
        [30., 40.]])
 1D tensor:   tensor([2., 4.])
 After multiply tensors:  tensor([[ 20.,  80.],
        [ 60., 160.]])


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads