¿Cómo normalizar un tensor a 0 media y 1 varianza en Pytorch?

Un tensor en PyTorch es como una array NumPy con la diferencia de que los tensores pueden utilizar la potencia de la GPU mientras que las arrays no. Para normalizar un tensor, transformamos el tensor de modo que la media y la desviación estándar se conviertan en 0 y 1 respectivamente. Como sabemos que la varianza es el cuadrado de la desviación estándar, la varianza también se convierte en 1. 

Podríamos seguir los siguientes pasos para normalizar un tensor a 0 de media y 1 de varianza

Implementación paso a paso

Pasos 1: importa las bibliotecas requeridas

La única biblioteca requerida es PyTorch. PyTorch es una biblioteca de aprendizaje automático para Python. Podemos importarlo usando el siguiente código. Por favor, asegúrese de que ya lo ha instalado.

Python3

import torch

Paso 2: crear el tensor PyTorch

 Hay diferentes formas de crear un tensor en PyTorch. Cree un tensor al que desee normalizar con 0 de media y 1 de varianza. Hemos creado un tensor flotante con tamaño 5. Puede seguir el artículo Tensores en PyTorch para crear un tensor.

Python3

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

Paso 3: Calcule la media, la desviación estándar (Std) y la varianza del tensor

Calculamos la desviación estándar media (std) y la varianza antes de normalizar el tensor. Usaremos la media y la estándar para normalizar el tensor (siguiente paso). Calculamos la varianza antes de normalizar el tensor para compararla con la varianza después de normalizar el tensor.

Python3

mean, std, var = torch.mean(t), torch.std(t), torch.var(t)

Paso 4: normalice el tensor utilizando la media y la desviación estándar

Para normalizar el tensor de entrada, primero restamos la media del tensor y luego el resultado se divide por la desviación estándar. Imprima el tensor para ver cómo se ve después de la normalización.

Python3

t  = (t-mean)/std

Paso 5: Calcule nuevamente la media y la varianza para verificar 0 media y 1 varianza

Nuevamente calculamos la media, la desviación estándar y la varianza para verificar que después de normalizar el tensor, ahora la media es 0 y la varianza es 1.

Python3

mean, std, var = torch.mean(t), torch.std(t), torch.var(t)
print("Mean, std and Var after normalize:\n", mean, std, var)

Ejemplo:

Ahora echemos un vistazo al código completo de los pasos anteriores para normalizar un tensor de entrada a 0 media y 1 varianza y veamos que después de normalizar el tensor, la media es 0 y la varianza es 1. Observe cómo el tensor de entrada se transforma en un nuevo tensor después de la normalización.

Python3

# Python program to normalize a tensor to
# 0 mean and 1 variance
# Step 1: Importing torch
import torch
  
# Step 2: creating a torch tensor
t = torch.tensor([1.,2.,3.,4.,5.])
print("Tensor before Normalize:\n", t)
  
# Step 3: Computing the mean, std and variance
mean, std, var = torch.mean(t), torch.std(t), torch.var(t)
print("Mean, Std and Var before Normalize:\n", 
      mean, std, var)
  
# Step 4: Normalizing the tensor
t  = (t-mean)/std
print("Tensor after Normalize:\n", t)
  
# Step 5: Again compute the mean, std and variance
# after Normalize
mean, std, var = torch.mean(t), torch.std(t), torch.var(t)
print("Mean, std and Var after normalize:\n", 
      mean, std, var)

Producción:

Tensor before Normalize:
 tensor([1., 2., 3., 4., 5.])
Mean, Std and Var before Normalize:
 tensor(3.) tensor(1.5811) tensor(2.5000)
Tensor after Normalize:
 tensor([-1.2649, -0.6325,  0.0000,  0.6325,  1.2649])
Mean, std and Var after normalize:
 tensor(0.) tensor(1.) tensor(1.)

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 *