¿Cómo calcular el histograma de un tensor en PyTorch?

Antes de comprender cómo calcular un histograma de un tensor, debemos tener algunos conocimientos básicos. Los tensores son simplemente objetos matemáticos que se pueden usar para describir propiedades físicas, al igual que los escalares y los vectores. Y un histograma es una representación gráfica que organiza un grupo de puntos de datos en rangos especificados por el usuario. 

Sintaxis: torch.histc(input,bins,min,max)

Parámetros:

  • entrada: este es el tensor que pasaremos como entrada,
  • bins: las torres o barras de un histograma se denominan bins. La altura de cada contenedor muestra cuántos valores de esos datos caen dentro de ese rango.
  • min: este es el valor mínimo de las barras, es decir, bin
  • max: este es el valor máximo de las barras, es decir, bin

Pasos para calcular el histograma de un tensor

Paso 1: Importe la biblioteca necesaria. En todos los ejemplos, las bibliotecas de Python requeridas son Matplotlib y torch.

Si no están instalados, instálelos usando ‘ pip install matplotlib ‘ y ‘ pip install torch ‘.

La sintaxis para importar una biblioteca desde el módulo de python:

import torch
import matplotlib.pyplot as plt #here plt is a alias

Paso 2: crea un tensor con valores aleatorios e imprímelo.

Un tensor Pytorch es lo mismo que una array NumPy, no sabe nada sobre aprendizaje profundo o gráficos o gradientes computacionales, es solo una array n-dimensional que se usará para el cálculo numérico. 

Sintaxis para crear un tensor:

Python3

# torch.tensor(data) creates a 
# torch.Tensor object with the
# given data.
V_data = [1., 2., 3.]
V = torch.tensor(V_data)
print(V)
  
# Creates a tensor of matrix
M_data = [[1., 2., 3.], [4., 5., 6]]
M = torch.tensor(M_data)
print(M)
  
# Create a 3D tensor of size 2x2x2.
T_data = [[[1., 2.], [3., 4.]],
          [[5., 6.], [7., 8.]]]
T = torch.tensor(T_data)
print(T)

Producción :

tensor([1., 2., 3.])
tensor([[1., 2., 3.],
        [4., 5., 6.]])
tensor([[[1., 2.],
         [3., 4.]],

        [[5., 6.],
         [7., 8.]]])

Paso 3: Calcule torch.histc(input, 5, min=0, max=4), configure bins, min y max en los valores apropiados según sus necesidades.

Sintaxis:

torch.histc(entrada, bins=100, min=0, max=0, *, out=Ninguno) → Tensor

Calcula el histograma de un tensor. Los elementos se clasifican en contenedores de igual ancho entre mínimo y máximo. Si min y max son ambos cero, se utilizan los valores mínimo y máximo de los datos. Los elementos inferiores al mínimo y superiores al máximo se ignoran.

Parámetros:

  • input (Tensor) – el tensor de entrada.
  • bins (int) – número de bins de histograma
  • min (int) – el extremo inferior del rango (inclusive)
  • max (int) – extremo superior del rango (inclusive)

Palabra clave utilizada: out (Tensor, opcional) – el tensor de salida.

Devoluciones: histograma representado como un tensor

Paso 4: Imprima el histograma que fue creado por la función torch.histc().

Utilice la función de impresión simple para imprimir el tensor del histograma.

Python3

# Use Google Colab to run these programs
import torch
  
GFG = torch.Tensor([1, 7, 1, 4, 1, 4, 3, 4, 1, 7, 2, 4])
hist = torch.histc(GFG, bins=5, min=0, max=4, *, out=None)
  
# Printing the histogram of tensor
print("GeeksforGeeks")
print("GFG tensor", hist)

Producción :

GeeksforGeeks
GFG tensor tensor([0., 4., 1., 1., 4.])

Paso 5: visualiza el histograma como un diagrama de barras 

Para visualizar el histograma usaremos la biblioteca matplotlib.

plt.bar(x/y, var_name, align=’center/left/right’, color = [‘anycolor’])

El bloque de código anterior se usa para trazar el histograma como un gráfico de barras.

Parámetros:

  • eje x/y: indica que el gráfico de barras está a lo largo del eje x o el eje y
  • var_name: Es el nombre de la variable que se le dio al tensor
  • alinear: centro, izquierda, derecha
  • color : cualquier color

Python3

import torch
import matplotlib.pyplot as plt
  
GFG = torch.Tensor([1, 7, 1, 4, 1, 4, 3, 4, 1, 7, 2, 4])
hist = torch.histc(GFG, bins=5, min=0, max=4, out=None)
  
# Printing the histogram of tensor
print("GeeksforGeeks")
print("GFG tensor", hist)
bins = 5
x = range(bins)
plt.bar(x, hist, align='center', color=['forestgreen'])
plt.xlabel('Bins')
plt.ylabel('Frequency')
plt.show()

Producción:

GeeksforGeeks

tensor tensor GFG([0., 4., 1., 1., 4.])

Veamos algunos ejemplos más para una mejor comprensión.

Ejemplo 1:

Python3

# example 1
import torch
import matplotlib.pyplot as plt
  
# Create a tensor
T = torch.Tensor([1, 5, 1, 4, 2, 4, 3,
                  3, 1, 4, 2, 4])
print("Original Tensor T:\n", T)
  
# Calculate the histogram of the above
# created tensor
hist = torch.histc(T, bins=5, min=0, max=4)
print("Histogram of T:\n", hist)

Producción

Tensor original T:

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

Histograma de T:

 tensor([0., 3., 2., 2., 4.])

Ejemplo 2:

Python3

# example 2
import torch
import matplotlib.pyplot as plt
  
# Create a tensor
T = torch.Tensor([1, 5, 1, 4, 2, 4, 3,
                  3, 1, 4, 2, 4])
print("Original Tensor T:\n", T)
  
# Calculate the histogram of the above 
# created tensor
hist = torch.histc(T, bins=5, min=0, max=4)
  
# Visualize above calculated histogram 
# as bar diagram
bins = 5
x = range(bins)
plt.bar(x, hist, align='center', color=['forestgreen'])
plt.xlabel('Bins')
plt.ylabel('Frequency')
plt.show()

Producción

Tensor original T:

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

Publicación traducida automáticamente

Artículo escrito por patilanurag661 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 *