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