Función PyTorch torch.quantized_batch_norm
Manual de referencia de Pytorch torch
torch.quantized_batch_normEs una función de PyTorch utilizada para realizar la normalización por lotes en tensores cuantizados. Esta función es muy útil durante la inferencia de modelos cuantizados, ya que permite llevar a cabo la normalización por lotes mientras se mantienen las ventajas de la cuantización.
Definición de la función
torch.quantized_batch_norm(input, weight, bias, mean, var, eps, output_scale, output_zero_point)
Descripción de parámetros
input: tensor de entrada cuantizadoweight: parámetro de escala de la normalización por lotesbias: parámetro de sesgo de la normalización por lotesmean: media de la normalización por lotesvar: varianza de la normalización por loteseps: pequeña constante para evitar la división por cerooutput_scale: escala de cuantización del tensor de salidaoutput_zero_point: punto cero de cuantización del tensor de salida
Ejemplo de uso
Ejemplo
import torch
# Crear tensor de entrada cuantizado
input = torch.quantize_per_tensor(torch.randn(1, 3, 4, 4), scale=0.1, zero_point=0, dtype=torch.quint8)
# Parámetros de normalización por lotes
weight = torch.ones(3)
bias = torch.zeros(3)
mean = torch.ones(3) * 0.5
var = torch.ones(3) * 0.2
# Realizar la normalización por lotes cuantizada
output = torch.quantized_batch_norm(
input, weight, bias, mean, var,
eps=1e-5, output_scale=0.1, output_zero_point=0
)
print("Forma de salida:", output.shape)
print("Tipo de salida:", output.dtype)
# Crear tensor de entrada cuantizado
input = torch.quantize_per_tensor(torch.randn(1, 3, 4, 4), scale=0.1, zero_point=0, dtype=torch.quint8)
# Parámetros de normalización por lotes
weight = torch.ones(3)
bias = torch.zeros(3)
mean = torch.ones(3) * 0.5
var = torch.ones(3) * 0.2
# Realizar la normalización por lotes cuantizada
output = torch.quantized_batch_norm(
input, weight, bias, mean, var,
eps=1e-5, output_scale=0.1, output_zero_point=0
)
print("Forma de salida:", output.shape)
print("Tipo de salida:", output.dtype)
El resultado de salida es:
输出形状: torch.Size([1, 3, 4, 4]) 输出类型: torch.quint8
Otras extensiones