Converta o tensor quantizado de 'entrada' em uma 'saída' de precisão inferior, usando o
distribuição real dos valores para maximizar o uso da profundidade de bits inferior e ajustar as faixas de saída mín. e máx. de acordo.
[input_min, input_max] são flutuantes escalares que especificam o intervalo para a interpretação flutuante dos dados de 'entrada'. Por exemplo, se input_min é -1.0f e input_max é 1.0f, e estamos lidando com dados quantizados quint16, então um valor 0 nos dados de 16 bits deve ser interpretado como -1.0f, e 65535 significa 1.0f.
Este operador tenta espremer o máximo de precisão possível em uma saída com uma profundidade de bits menor, calculando os valores mínimo e máximo reais encontrados nos dados. Por exemplo, talvez essa entrada quint16 não tenha valores inferiores a 16.384 e nenhum superior a 49.152. Isso significa que apenas metade do intervalo é realmente necessário, todas as interpretações flutuantes estão entre -0,5f e 0,5f, então, se quisermos compactar os dados em uma saída quint8, podemos usar esse intervalo em vez do teórico -1,0f a 1,0 f que é sugerido pela entrada mín e máx.
Na prática, isso é mais útil para obter a saída de operações como QuantizedMatMul, que pode produzir saídas de profundidade de bits maiores do que suas entradas e pode ter grandes intervalos de saída potencial, mas na prática tem uma distribuição de valores de entrada que usa apenas uma pequena fração do alcance possível. Ao alimentar essa saída neste operador, podemos reduzi-la de 32 bits para 8 com perda mínima de precisão.
Constantes
Fragmento | OP_NAME | O nome desta operação, conforme conhecido pelo motor principal TensorFlow |
Métodos Públicos
estática <U estende TType > QuantizeDownAndShrinkRange <U> | |
Output <U> | saída () |
Output < TFloat32 > | outputMax () O valor flutuante que o valor de saída quantizado máximo representa. |
Output < TFloat32 > | outputMin () O valor flutuante que o valor mínimo de saída quantizado representa. |
Métodos herdados
Constantes
nome_op final String public static
O nome desta operação, conforme conhecido pelo motor principal TensorFlow
Métodos Públicos
public static QuantizeDownAndShrinkRange <U> create ( Scope escopo, Operando <? estende TType > entrada, Operando < TFloat32 > inputMin, Operando < TFloat32 > inputMax, Class <U> outType)
Método de fábrica para criar uma classe que envolve uma nova operação QuantizeDownAndShrinkRange.
Parâmetros
alcance | escopo atual |
---|---|
inputMin | O valor flutuante que o valor mínimo de entrada quantizado representa. |
inputMax | O valor flutuante que o valor máximo de entrada quantizado representa. |
outType | O tipo de saída. Deve ter uma profundidade de bits menor do que Tinput. |
Devoluções
- uma nova instância de QuantizeDownAndShrinkRange
pública Output < TFloat32 > outputMax ()
O valor flutuante que o valor de saída quantizado máximo representa.