Descuantifique el tensor de 'entrada' en un tensor flotante o bfloat16.
[min_range, max_range] son flotantes escalares que especifican el rango de la salida. El atributo 'modo' controla exactamente qué cálculos se utilizan para convertir los valores flotantes a sus equivalentes cuantificados.
En el modo 'MIN_COMBINED', cada valor del tensor pasará por lo siguiente:
if T == qint8: in[i] += (range(T) + 1)/ 2.0
out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
Ejemplo de modo MIN_COMBINED
Si la entrada proviene de QuantizedRelu6, el tipo de salida es quint8 (rango de 0-255) pero el rango posible de QuantizedRelu6 es 0-6. Los valores min_range y max_range son, por tanto, 0,0 y 6,0. Descuantificar en quint8 tomará cada valor, lo convertirá a flotante y lo multiplicará por 6/255. Tenga en cuenta que si el tipo cuantificado es qint8, la operación agregará adicionalmente cada valor en 128 antes de realizar la conversión.
Si el modo es 'MIN_FIRST', entonces se utiliza este enfoque:
num_discrete_values = 1 << (# of bits in T)
range_adjust = num_discrete_values / (num_discrete_values - 1)
range = (range_max - range_min) * range_adjust
range_scale = range / num_discrete_values
const double offset_input = static_cast<double>(input) - lowest_quantized;
result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
El factor de escala se determina a partir de `min_range`, `max_range` y `narrow_range` de una manera que sea compatible con `QuantizeAndDequantize{V2|V3}` y `QuantizeV2`, utilizando el siguiente algoritmo:
const int min_expected_T = std::numeric_limits<T>::min() +
(narrow_range ? 1 : 0);
const int max_expected_T = std::numeric_limits<T>::max();
const float max_expected_T = std::numeric_limits<float>::max();
const float scale_factor =
(std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
: std::max(min_range / min_expected_T,
max_range / max_expected_T);
Clases anidadas
clase | Descuantificar.Opciones | Atributos opcionales para Dequantize |
Constantes
Cadena | OP_NOMBRE | El nombre de esta operación, como lo conoce el motor central de TensorFlow. |
Métodos públicos
Salida <U> | como salida () Devuelve el identificador simbólico del tensor. |
Opciones estáticas de descuantificación | eje (eje largo) |
estático <U extiende TNumber > Descuantificar <U> | crear ( alcance alcance , Operando <? extiende TType > entrada, Operando < TFloat32 > minRange, Operando < TFloat32 > maxRange, Clase <U> dtype, Opciones... opciones) Método de fábrica para crear una clase que envuelve una nueva operación de descuantificación. |
Descuantificación estática <TFloat32> | crear (alcance alcance , operando <? extiende TType > entrada, operando <TFloat32> minRange, operando <TFloat32> maxRange, opciones... opciones) Método de fábrica para crear una clase que envuelve una nueva operación de descuantificación utilizando tipos de salida predeterminados. |
Opciones estáticas de descuantificación | modo (modo cadena) |
Opciones estáticas de descuantificación | rango estrecho (rango estrecho booleano) |
Salida <U> | producción () |
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
Salida pública <U> como Salida ()
Devuelve el identificador simbólico del tensor.
Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.
public static Descuantificar <U> crear ( Alcance alcance, Operando <? extiende TType > entrada, Operando < TFloat32 > minRange, Operando < TFloat32 > maxRange, Clase <U> dtype, Opciones... opciones)
Método de fábrica para crear una clase que envuelve una nueva operación de descuantificación.
Parámetros
alcance | alcance actual |
---|---|
rango mínimo | El valor escalar mínimo posiblemente producido para la entrada. |
rango máximo | El valor escalar máximo posiblemente producido para la entrada. |
tipo d | Tipo de tensor de salida. Actualmente, Dequantize admite float y bfloat16. Si 'dtype' es 'bfloat16', solo admite el modo 'MIN_COMBINED'. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de Descuantificar
public static Dequantize < TFloat32 > create ( Alcance alcance, Operando <? extiende TType > entrada, Operando < TFloat32 > minRange, Operando < TFloat32 > maxRange, Opciones... opciones)
Método de fábrica para crear una clase que envuelve una nueva operación de descuantificación utilizando tipos de salida predeterminados.
Parámetros
alcance | alcance actual |
---|---|
rango mínimo | El valor escalar mínimo posiblemente producido para la entrada. |
rango máximo | El valor escalar máximo posiblemente producido para la entrada. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de Descuantificar