Método Python PyTorch log2()

El método PyTorch log2() calcula el logaritmo en base 2 de los elementos de un tensor de entrada. Calcula los valores del logaritmo por elementos. Toma un tensor como entrada y devuelve un nuevo tensor con valores logarítmicos calculados. Los elementos del tensor de entrada deben estar entre cero y el infinito positivo ya que el dominio de la función log 2 (x) es (0,∞). Usaremos la siguiente sintaxis para este método:

Sintaxis: torch.log2(entrada, salida=Ninguno)

Parámetros:

  • entrada: el tensor de entrada.
  • out: el tensor de salida.

Retorno: Devuelve un nuevo tensor con el logaritmo en base 2 valores de los elementos del tensor de entrada.

Entendamos el método torch.log2() con la ayuda de algunos ejemplos de programas de Python 3.

Ejemplo 1:

En este ejemplo, definimos un tensor 1-D y calculamos los logaritmos en los valores de base 2 de sus elementos.

Python3

# Python3 program to demonstrate torch.log2() method
# importing torch
import torch
 
# defining a torch tensor
t = torch.tensor([2., 4., 7., 3.])
print('Tensor:', t)
 
# computing the logarithm base 2 of t
result = torch.log2(t)
print('Logarithm of Tensor:', result)

Producción:

Tensor: tensor([2., 4., 7., 3.])

Logaritmo de Tensor: tensor([1.0000, 2.0000, 2.8074, 1.5850])

Explicación: El logaritmo se calcula por elementos. 

Ejemplo 2:

En el siguiente ejemplo, calculamos los logaritmos en base 2 de un tensor 2D. 

Python3

# Python3 program to demonstrate torch.log2() method
# for 2D tensors
# importing torch
import torch
 
# defining a 2D torch tensor with numbers sampled
# from the discrete uniform distribution
t = torch.empty((3, 4), dtype=torch.float32).random_(1, 50)
print('Tensor:\n', t)
 
# computing the logarithm base 2 of t
result = torch.log2(t)
print('Logarithm of Tensor:\n', result)

Producción:

Tensor:
 tensor([[19., 32.,  2., 29.],
        [30., 10., 16., 18.],
        [49., 10.,  7., 25.]])
Logarithm of Tensor:
 tensor([[4.2479, 5.0000, 1.0000, 4.8580],
        [4.9069, 3.3219, 4.0000, 4.1699],
        [5.6147, 3.3219, 2.8074, 4.6439]])

Explicación: tenga en cuenta que el tensor de entrada en el código anterior se genera con números muestreados de la distribución uniforme discreta, por lo que cuando ejecuta el código puede generar diferentes números. 

Ejemplo 3:

En el siguiente ejemplo, calculamos el logaritmo en base 2 de los elementos del tensor de entrada y visualizamos los resultados con la ayuda de un diagrama de Matplotlib.

Python3

# Python3 program to demonstrate torch.log2() method
%matplotlib qt
 
# importing required libraries
import torch
import numpy as np
 
# import matplotlib.pyplot as plt
# defining a torch tensor
x = np.arange(1,50, 1)
t = torch.tensor(x)
print('Tensor:', t)
 
# computing the logarithm base 2 of t
result = torch.log2(t)
print('Logarithm of Tensor:', result)
 
# tensor to numpy array
y = result.numpy()
 
# plot the result using matplotlib
plt.plot(x, y, color = 'red', marker = "o")
plt.xlabel("x")
plt.ylabel("log2(x)")
plt.show()

Producción:

Tensor: tensor([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,

        19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,

        37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], dtype=torch.int32)

Logaritmo de Tensor: tensor([0.0000, 1.0000, 1.5850, 2.0000, 2.3219, 2.5850, 2.8074, 3.0000, 3.1699,

        3.3219, 3.4594, 3.5850, 3.7004, 3.8074, 3.9069, 4.0000, 4.0875, 4.1699,

        4.2479, 4.3219, 4.3923, 4.4594, 4.5236, 4.5850, 4.6439, 4.7004, 4.7549,

        4.8074, 4.8580, 4.9069, 4.9542, 5.0000, 5.0444, 5.0875, 5.1293, 5.1699,

        5.2095, 5.2479, 5.2854, 5.3219, 5.3576, 5.3923, 5.4263, 5.4594, 5.4919,

        5.5236, 5.5546, 5.5850, 5.6147])

Ejemplo 4:

En este ejemplo, tratamos de calcular el logaritmo en base 2 de valores negativos, cero e infinito. Mira cómo está la salida.

Python3

# Python3 program to demonstrate torch.log2() method
# importing libraries
import torch
import numpy as np
 
# defining a torch tensor
t = torch.tensor([-3., -5., 0, 0.5, 7., 3., np.inf])
print('Original Tensor:\n', t)
 
# computing the logarithm base 2 of t
result = torch.log2(t)
print('Logarithm of Tensor:\n', result)

Producción:

Tensores originales:

 tensor([-3.0000, -5.0000, 0.0000, 0.5000, 7.0000, 3.0000, inf])

Logaritmo del tensor:

 tensor([ nan, nan, -inf, -1.0000, 2.8074, 1.5850, inf])

Explicación: Ver el logaritmo del número negativo es nan (No es un número). El logaritmo de 0 es -inf. Y el logaritmo de infinito es infinito (inf).

Publicación traducida automáticamente

Artículo escrito por shahidedu7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *