Dequantize

public final class Dequantize

Desquantize o tensor de 'entrada' em um Tensor flutuante ou bfloat16.

[intervalo_min, intervalo_max] são flutuantes escalares que especificam o intervalo da saída. O atributo 'modo' controla exatamente quais cálculos são usados ​​para converter os valores flutuantes em seus equivalentes quantizados.

No modo 'MIN_COMBINED', cada valor do tensor vai ser submetido aos seguintes:

if T == qint8: in[i] += (range(T) + 1)/ 2.0
 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
 
aqui `intervalo (T) = numeric_limits :: max () - numeric_limits :: min () `

Exemplo de modo MIN_COMBINED

Se a entrada vem de um QuantizedRelu6, o tipo de saída é quint8 (faixa de 0-255), mas a faixa possível de QuantizedRelu6 é 0-6. Os valores min_range e max_range são, portanto, 0,0 e 6,0. Desquantizar em quint8 tomará cada valor, converter para flutuar e multiplicar por 6 / 255. Observe que se quantizedtype for qint8, a operação adicionará adicionalmente cada valor por 128 antes de lançar.

Se o modo for 'MIN_FIRST', em seguida, esta abordagem é utilizada:

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)
 
Se o modo for `SCALED`, dequantization é executada multiplicando cada valor de entrada por um scaling_factor. (Assim, uma entrada de 0 sempre mapeia para 0,0).

O scaling_factor é determinado a partir `min_range`,` max_range`, e `narrow_range` de uma forma que seja compatível com` QuantizeAndDequantize {V2 | V3} `e` QuantizeV2`, usando o seguinte 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);
 

Classes aninhadas

classe Dequantize.Options Atributos opcionais para Dequantize

Constantes

Fragmento OP_NAME O nome desta operação, conforme conhecido pelo motor principal TensorFlow

Métodos Públicos

Output <U>
asOutput ()
Retorna o identificador simbólico do tensor.
estáticos Dequantize.Options
eixo (eixo Long)
estática <U estende TNumber > Dequantize <U>
criar ( Scope escopo, Operando <? estende TType > entrada, Operando < TFloat32 > minRange, Operando < TFloat32 > MaxRange, Class <U> dtipo, Options ... Opções)
Método de fábrica para criar uma classe envolvendo uma nova operação Dequantize.
estática Dequantize < TFloat32 >
criar ( Scope escopo, Operando <? estende TType > entrada, Operando < TFloat32 > minRange, Operando < TFloat32 > MaxRange, Options ... Opções)
Método de fábrica para criar uma classe envolvendo uma nova operação Dequantize usando tipos de saída padrão.
estáticos Dequantize.Options
Modo (modo da corda)
estáticos Dequantize.Options
narrowRange (booleano narrowRange)
Output <U>
saída ()

Métodos herdados

Constantes

nome_op final String public static

O nome desta operação, conforme conhecido pelo motor principal TensorFlow

Valor constante: "Dequantize"

Métodos Públicos

pública Output <U> asOutput ()

Retorna o identificador simbólico do tensor.

As entradas para as operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.

public static Dequantize.Options eixos (eixo Long)

public static Dequantize <U> create ( Scope escopo, Operando <? estende TType > entrada, Operando < TFloat32 > minRange, Operando < TFloat32 > MaxRange, Class <U> dtipo, Options ... Opções)

Método de fábrica para criar uma classe envolvendo uma nova operação Dequantize.

Parâmetros
alcance escopo atual
minRange O valor escalar mínimo possivelmente produzido para a entrada.
maxRange O valor escalar máximo possivelmente produzido para a entrada.
dtipo Tipo de tensor de saída. Atualmente Dequantize suporta float e bfloat16. Se 'dtype' for 'bfloat16', ele só suporta o modo 'MIN_COMBINED'.
opções carrega valores de atributos opcionais
Devoluções
  • uma nova instância de Dequantize

public static Dequantize < TFloat32 > create ( Scope escopo, Operando <? estende TType > entrada, Operando < TFloat32 > minRange, Operando < TFloat32 > MaxRange, Options ... Opções)

Método de fábrica para criar uma classe envolvendo uma nova operação Dequantize usando tipos de saída padrão.

Parâmetros
alcance escopo atual
minRange O valor escalar mínimo possivelmente produzido para a entrada.
maxRange O valor escalar máximo possivelmente produzido para a entrada.
opções carrega valores de atributos opcionais
Devoluções
  • uma nova instância de Dequantize

public static Dequantize.Options mode (modo String)

public static Dequantize.Options narrowRange (Boolean narrowRange)

pública Output <U> saída ()