Fonction torch.quantized_batch_norm de PyTorch
Manuel de référence Pytorch torch
torch.quantized_batch_normEst une fonction dans PyTorch utilisée pour effectuer une normalisation par lots sur des tenseurs quantifiés. Cette fonction est très utile lors de l'inférence d'un modèle quantifié, permettant des opérations de normalisation par lots tout en conservant les avantages de la quantification.
Définition de fonction
torch.quantized_batch_norm(input, weight, bias, mean, var, eps, output_scale, output_zero_point)
Description du paramètre
input: tenseur quantifié d'entréeweight: paramètre d'échelle de normalisation par lotsbias: paramètre de biais de normalisation par lotsmean: moyenne de normalisation par lotsvar: variance de normalisation par lotseps: petite constante pour éviter la division par zérooutput_scale: échelle de quantification du tenseur de sortieoutput_zero_point: point zéro de quantification du tenseur de sortie
Exemple d'utilisation
Exemple
import torch
# Créer un tenseur d'entrée quantifié
input = torch.quantize_per_tensor(torch.randn(1, 3, 4, 4), scale=0.1, zero_point=0, dtype=torch.quint8)
# Paramètres de normalisation par lots
weight = torch.ones(3)
bias = torch.zeros(3)
mean = torch.ones(3) * 0.5
var = torch.ones(3) * 0.2
# Effectuer une normalisation par lots quantifiée
output = torch.quantized_batch_norm(
input, weight, bias, mean, var,
eps=1e-5, output_scale=0.1, output_zero_point=0
)
print("Forme de sortie :", output.shape)
print("Type de sortie :", output.dtype)
# Créer un tenseur d'entrée quantifié
input = torch.quantize_per_tensor(torch.randn(1, 3, 4, 4), scale=0.1, zero_point=0, dtype=torch.quint8)
# Paramètres de normalisation par lots
weight = torch.ones(3)
bias = torch.zeros(3)
mean = torch.ones(3) * 0.5
var = torch.ones(3) * 0.2
# Effectuer une normalisation par lots quantifiée
output = torch.quantized_batch_norm(
input, weight, bias, mean, var,
eps=1e-5, output_scale=0.1, output_zero_point=0
)
print("Forme de sortie :", output.shape)
print("Type de sortie :", output.dtype)
Le résultat de sortie est:
输出形状: torch.Size([1, 3, 4, 4]) 输出类型: torch.quint8
Autres extensions