テンソルフロー::作戦::クオンタイズダウンと範囲縮小

#include <math_ops.h>

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

まとめ

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

[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 ビットに減らすことができます。

引数:

  • スコープ:スコープオブジェクト
  • input_min: 最小量子化入力値が表す浮動小数点値。
  • input_max: 最大量子化入力値が表す浮動小数点値。
  • out_type: 出力のタイプ。 Tinput よりも低いビット深度にする必要があります。

戻り値:

  • Output出力
  • Output Output_min: 最小量子化出力値が表す浮動小数点値。
  • Output Output_max: 最大量子化出力値が表す浮動小数点値。

コンストラクターとデストラクター

QuantizeDownAndShrinkRange (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, DataType out_type)

パブリック属性

operation
output
output_max
output_min

パブリック属性

手術

Operation operation

出力

::tensorflow::Output output

出力最大値

::tensorflow::Output output_max

出力_分

::tensorflow::Output output_min

公共機能

クオンタイズダウンと範囲縮小

 QuantizeDownAndShrinkRange(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max,
  DataType out_type
)