Convierta el tensor de 'entrada' cuantificado en una 'salida' de menor precisión, utilizando el
distribución real de los valores para maximizar el uso de la profundidad de bits más baja y ajustar los rangos mínimo y máximo de salida en consecuencia.
[input_min, input_max] son flotantes escalares que especifican el rango para la interpretación flotante de los datos de 'entrada'. Por ejemplo, si input_min es -1,0f y input_max es 1,0f, y estamos tratando con datos cuantificados de quint16, entonces un valor 0 en los datos de 16 bits debe interpretarse como -1,0f, y 65535 significa 1,0f.
Este operador intenta exprimir la mayor precisión posible en una salida con una profundidad de bits más baja calculando los valores mínimo y máximo reales que se encuentran en los datos. Por ejemplo, tal vez esa entrada de quint16 no tenga valores inferiores a 16,384 ni ninguno superior a 49,152. Eso significa que en realidad solo se necesita la mitad del rango, todas las interpretaciones flotantes están entre -0,5f y 0,5f, por lo que si queremos comprimir los datos en una salida de Quint8, podemos usar ese rango en lugar del teórico -1,0f a 1,0. f que es sugerido por la entrada min y max.
En la práctica, esto es más útil para obtener resultados de operaciones como QuantizedMatMul que pueden producir resultados con mayor profundidad de bits que sus entradas y pueden tener grandes rangos de salida potenciales, pero en la práctica tienen una distribución de valores de entrada que solo utiliza una pequeña fracción de los valores de entrada. rango posible. Al introducir esa salida en este operador, podemos reducirla de 32 bits a 8 con una pérdida mínima de precisión.
Constantes
Cadena | OP_NOMBRE | El nombre de esta operación, como lo conoce el motor central de TensorFlow. |
Métodos públicos
estático <U extiende TType > QuantizeDownAndShrinkRange <U> | |
Salida <U> | producción () |
Salida <TFloat32> | salidaMax () El valor flotante que representa el valor de salida cuantificado máximo. |
Salida <TFloat32> | salidaMin () El valor flotante que representa el valor de salida cuantificado mínimo. |
Métodos heredados
Constantes
Cadena final estática pública OP_NAME
El nombre de esta operación, como lo conoce el motor central de TensorFlow.
Métodos públicos
public static QuantizeDownAndShrinkRange <U> crear (alcance alcance , operando <? extiende TType > entrada, operando < TFloat32 > inputMin, operando < TFloat32 > inputMax, clase <U> outType)
Método de fábrica para crear una clase que envuelve una nueva operación QuantizeDownAndShrinkRange.
Parámetros
alcance | alcance actual |
---|---|
entrada mínima | El valor flotante que representa el valor de entrada cuantificado mínimo. |
entradaMax | El valor flotante que representa el valor de entrada cuantificado máximo. |
tipo de salida | El tipo de salida. Debería tener una profundidad de bits menor que Tinput. |
Devoluciones
- una nueva instancia de QuantizeDownAndShrinkRange
Salida pública <TFloat32> salidaMax ()
El valor flotante que representa el valor de salida cuantificado máximo.
Salida pública <TFloat32> salidaMin ()
El valor flotante que representa el valor de salida cuantificado mínimo.