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
tens_1 = torch.Tensor([ 1 , 2 , 3 , 4 , 5 ])
tens_2 = torch.Tensor([ 10 , 20 , 30 , 40 , 50 ])
print ( " First Tensor: " , tens_1)
print ( " Second Tensor: " , tens_2)
tens = torch.mul(tens_1, tens_2)
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
tens_1 = torch.Tensor([ 100 , 200 , 300 , 400 , 500 ])
print ( " First Tensor: " , tens_1)
tens = torch.mul(tens_1, 2 )
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
tens_1 = torch.Tensor([[ 10 , 20 ], [ 30 , 40 ]])
tens_2 = torch.Tensor([[ 1 , 2 ], [ 3 , 4 ]])
print ( " First tensor: " , tens_1)
print ( " Second tensor: " , tens_2)
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
tens_1 = torch.Tensor([[ 10 , 20 ], [ 30 , 40 ]])
tens_2 = torch.Tensor([ 2 , 4 ])
print ( " 2D tensor: " , tens_1)
print ( " 1D tensor: " , tens_2)
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.]])