How to compute elementwise logical AND, OR and NOT of given input tensors in PyTorch?


To compute elementwise logical AND of given input tensors we apply torch.logical_and(). It takes two input tensors and computes the logical AND element wise. The zeros in the tensors are treated as False and non-zeros as True. The input tensors may be of any dimension.

The torch.logical_or() function computes elementwise logical OR of the given input tensors. It also takes two input tensors and outputs a tensor with True or False. As same in logical AND zeros are treated as False and non-zeros are treated as True.The input tensors may be of any dimension.

To compute the elementwise NOT of a given input tensor we apply torch.logical_not() metod. This method takes a single input tensor and returns a tensor with a logical NOT of each element. Same as above, zeros are False and non-zeros as True.

Syntax

torch.logical_and(input1, input2)
torch.logical_or(input1, input2)
torch.logical_not(input)

Steps

  • Import the required library. In all the following examples, the required Python library is torch. Make sure you have already installed it.

import torch
  • Define torch tensors and print them.

input1 = torch.tensor([4, -2, 3, 0], dtype=torch.int8)
input2 = torch.tensor([0, 1, -7, 2], dtype=torch.int8)
  • Compute logical AND, OR or NOT using above defined syntax.

output = torch.logical_and(input1, input2)
  • Print the computed tensor.

print("Logical AND:
", output)

Now let's take a couple of examples to demonstrate how to compute elementwise Logical AND, OR and NOT.

Example 1

In this Python program, we compute the element-wise logical AND.

# Python 3 program to compute element-wise
# logical AND of the given input tensors
# Import the required library
import torch

# define two tensors
input1 = torch.tensor([4, -2, 3, 0], dtype=torch.int8)
input2 = torch.tensor([0, 1, -7, 2], dtype=torch.int8)

# display the above defined tensors
print("Input Tensor 1:
", input1) print("Input Tensor 2:
", input2) # compute the logical AND of input1 and input2 output = torch.logical_and(input1, input2) # print above computed logical AND tensor print("Logical AND:
", output) print(".................................") # define two tensors input1 = torch.tensor([True, True, False, False]) input2 = torch.tensor([False, True, False, True]) # display the above defined tensors print("Input Tensor 1:
", input1) print("Input Tensor 2:
", input2) # compute the logical AND of input1 and input2 output = torch.logical_and(input1, input2) # print above computed Logical AND tensor print("Logical AND:
", output)

Output

Input Tensor 1:
   tensor([ 4, -2, 3, 0], dtype=torch.int8)
Input Tensor 2:
   tensor([ 0, 1, -7, 2], dtype=torch.int8)
Logical AND:
   tensor([False, True, True, False])
.................................
Input Tensor 1:
   tensor([ True, True, False, False])
Input Tensor 2:
   tensor([False, True, False, True])
Logical AND:
   tensor([False, True, False, False])

Example 2

In this program, we compute the element-wise logical OR.

# Python 3 program to compute element-wise
# logical OR of the given input tensors
# Import the required library
import torch
# define two tensors
input1 = torch.tensor([4, -2, 3, 0], dtype=torch.int8)
input2 = torch.tensor([0, 1, -7, 0], dtype=torch.int8)

# display the above defined tensors
print("Input Tensor 1:
", input1) print("Input Tensor 2:
", input2) # compute the logical OR of input1 and input2 output = torch.logical_or(input1, input2) # print above computed logical OR tensor print("Logical OR:
", output) print(".................................") # define two tensors input1 = torch.tensor([True, True, False, False]) input2 = torch.tensor([False, True, False, True]) # display the above defined tensors print("Input Tensor 1:
", input1) print("Input Tensor 2:
", input2) # compute the logical OR of input1 and input2 output = torch.logical_or(input1, input2) # print above computed Logical OR tensor print("Logical OR:
", output)

Output

Input Tensor 1:
   tensor([ 4, -2, 3, 0], dtype=torch.int8)
Input Tensor 2:
   tensor([ 0, 1, -7, 0], dtype=torch.int8)
Logical OR:
   tensor([ True, True, True, False])
.................................
Input Tensor 1:
   tensor([ True, True, False, False])
Input Tensor 2:
   tensor([False, True, False, True])
Logical OR:
   tensor([ True, True, False, True])

Example 3

In this program, we compute the element-wise logical NOT.

# Python program to compute logical NOT of a given input tensor
# Import the required library
import torch

# define input tensors
input1 = torch.tensor([11, -21, 0], dtype=torch.int8)

# display the above defined tensors
print("Input Tensor 1:
", input1) # compute the logical NOT output1 = torch.logical_not(input1) # print above computed logical NOT tensor print("Logical NOT:
", output1) # define input tensors input2 = torch.tensor([False, True]) # display the above defined tensors print("Input Tensor 2:
", input2) # compute the logical NOT output2 = torch.logical_not(input2) # print above computed logical NOT tensor print("Logical NOT:
", output2)

Output

Input Tensor 1:
   tensor([ 11, -21, 0], dtype=torch.int8)
Logical NOT:
   tensor([False, False, True])
Input Tensor 2:
   tensor([False, True])
Logical NOT:
   tensor([ True, False])

Updated on: 27-Jan-2022

642 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements