QuantizeDownAndShrinkRange

パブリック最終クラスQuantizeDownAndShrinkRange

を使用して、量子化された「入力」テンソルをより低精度の「出力」に変換します。

低いビット深度の使用を最大化するために値を実際に分配し、それに応じて出力の最小範囲と最大範囲を調整します。

[input_min、input_max] は、「入力」データの浮動小数点解釈の範囲を指定するスカラー浮動小数点です。たとえば、input_min が -1.0f、input_max が 1.0f で、quint16 量子化データを扱っている場合、16 ビット データの 0 値は -1.0f として解釈され、65535 は 1.0f を意味します。

この演算子は、データ内で見つかった実際の最小値と最大値を計算することにより、より低いビット深度で出力に可能な限りの精度を詰めようとします。たとえば、quint16 入力には 16,384 より小さい値がなく、49,152 より大きい値もない可能性があります。これは、実際に必要なのは範囲の半分だけであることを意味します。すべての float 解釈は -0.5f から 0.5f の間なので、データを quint8 出力に圧縮したい場合は、理論上の -1.0f から 1.0 ではなく、その範囲を使用できます。入力最小値と最大値によって示唆される f。

実際には、これは、入力よりも高いビット深度の出力を生成でき、潜在的な出力範囲が広い可能性がある QuantizedMatMul のような演算から出力を取得する場合に最も役立ちますが、実際には、入力値の分布のごく一部のみが使用されます。可能な範囲。その出力をこの演算子に入力することで、精度の低下を最小限に抑えながら、出力を 32 ビットから 8 ビットに減らすことができます。

定数

OP_NAME TensorFlow コア エンジンによって認識される、この演算の名前

パブリックメソッド

static <U extends TType > QuantizeDownAndShrinkRange <U>
create (スコープscope、オペランド<? extends TType > input、オペランド< TFloat32 > inputMin、オペランド< TFloat32 > inputMax、Class<U> outType)
新しい QuantizeDownAndShrinkRange 操作をラップするクラスを作成するファクトリ メソッド。
出力<U>
出力< TFloat32 >
出力最大()
最大量子化出力値が表す浮動小数点値。
出力< TFloat32 >
出力最小値()
最小量子化出力値が表す浮動小数点値。

継承されたメソッド

定数

パブリック静的最終文字列OP_NAME

TensorFlow コア エンジンによって認識される、この演算の名前

定数値: "QuantizeDownAndShrinkRange"

パブリックメソッド

public static QuantizeDownAndShrinkRange <U> create (スコープscope, Operand <? extends TType > input, Operand < TFloat32 > inputMin, Operand < TFloat32 > inputMax, Class<U> outType)

新しい QuantizeDownAndShrinkRange 操作をラップするクラスを作成するファクトリ メソッド。

パラメーター
範囲現在のスコープ
入力最小値最小量子化入力値が表す浮動小数点値。
入力最大値最大量子化入力値が表す浮動小数点値。
outType出力のタイプ。 Tinput よりも低いビット深度にする必要があります。
戻り値
  • QuantizeDownAndShrinkRange の新しいインスタンス

public出力<U>出力()

public Output < TFloat32 > OutputMax ()

最大量子化出力値が表す浮動小数点値。

public Output < TFloat32 > OutputMin ()

最小量子化出力値が表す浮動小数点値。