PyTorch – How to compute the logistic sigmoid function of tensor elements?

PyTorchServer Side ProgrammingProgramming

To compute the logistic function of elements of a tensor, we use torch.special.expit() method. It returns a new tensor with computed logistic function element-wise. It accepts torch tensor of any dimension. We could also apply torch.sigmoid() method to compute the logistic function of elements of the tensor. It is an alias of the torch.special.expit() method.

Syntax

torch.special.expit(input)
torch.sigmoid(input)

Where input is a torch tensor of any dimension.

Steps

We could use the following steps to compute logistic sigmoid function of a tensor element-wise −

  • 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 a torch tensor. Here we define a 2D tensor of random numbers.

tensor = torch.randn(2,3,3)
  • Compute the logistic sigmoid function of the tensor using torch.special.expit(input) or torch.sigmoid(input). input is torch tensor of any dimension. Optionally assign this value to a new variable

sig = torch.special.expit(tensor)
  • Print the computed logistic sigmoid function.

print("Entropy:", sig)

Example 1

In this program, we compute the sigmoid function of a 1D tensor using torch.sigmoid().

# import necessary libraries
import torch

# define a 1D tensor
tensor1 = torch.tensor([-1,2,0,.4,5])

# print above created tensor
print("Tensor:", tensor1)

# Compute the logistic sigmoid function of elements
sig = torch.sigmoid(tensor1)

# Display the computed Logistic Sigmoid function
print("Logistic Sigmoid:", sig)

Output

Tensor: tensor([-1.0000, 2.0000, 0.0000, 0.4000, 5.0000])
Logistic Sigmoid: tensor([0.2689, 0.8808, 0.5000, 0.5987, 0.9933])

Example 2

In this program, we compute the sigmoid function of 1D and 2D tensors using torch.special.expit()

# import torch library
import torch

# define a 1D tensor
tensor1 = torch.tensor([-1,2,0,.4,5])

# print above created tensor
print("Tensor 1:", tensor1)

# compute the logistic sigmoid function of elements
sig1 = torch.special.expit(tensor1)

# Display the computed Logistic Sigmoid function
print("Logistic Sigmoid Function:\n", sig1)

# define a 2D tensor
tensor2 = torch.randn(2,3,3)

# print above created tensor
print("Tensor 2:", tensor2)

# compute the logistic sigmoid function of elements
sig2 = torch.special.expit(tensor2)

# Display the computed logistic sigmoid function
print("Logistic Sigmoid Function:\n", sig2)

Output

Tensor 1: tensor([-1.0000, 2.0000, 0.0000, 0.4000, 5.0000])
Logistic Sigmoid Function:
   tensor([0.2689, 0.8808, 0.5000, 0.5987, 0.9933])
Tensor 2: tensor([[[-0.6318, -1.7586, 0.0252],
   [-0.0684, -0.4922, 1.7505],
   [-1.3301, 0.1333, -0.3744]],

   [[ 1.0607, -0.3999, 0.4564],
   [ 1.3029, 1.4259, 0.6266],
   [ 1.1038, 0.3965, 0.1522]]])
Logistic Sigmoid Function:
   tensor([[[0.3471, 0.1470, 0.5063],
      [0.4829, 0.3794, 0.8520],
      [0.2091, 0.5333, 0.4075]],

      [[0.7428, 0.4013, 0.6122],
      [0.7863, 0.8063, 0.6517],
      [0.7510, 0.5978, 0.5380]]])
raja
Published on 07-Jan-2022 05:21:56

Advertisements