Dequantize

パブリック最終クラス逆量子化

「入力」テンソルを float または bfloat16 テンソルに逆量子化します。

[min_range, max_range] は、出力の範囲を指定するスカラー浮動小数点数です。 「mode」属性は、float 値を量子化された同等の値に変換するためにどの計算が使用されるかを正確に制御します。

'MIN_COMBINED' モードでは、テンソルの各値は次の処理を受けます:

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

MIN_COMBINED モードの例

入力が QuantizedRelu6 からのものである場合、出力タイプは quint8 (範囲 0 ~ 255) ですが、QuantizedRelu6 の可能な範囲は 0 ~ 6 です。したがって、min_range 値と max_range 値は 0.0 と 6.0 になります。 quint8 での逆量子化は、各値を取得し、float にキャストし、6 / 255 を乗算します。quantizedtype が qint8 の場合、この操作ではキャスト前に各値に 128 が追加されることに注意してください。

モードが 'MIN_FIRST' の場合、次のアプローチが使用されます。

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)
 
モードが 'SCALED' の場合、逆量子化は、各入力値に scaling_factor を乗算することによって実行されます。 (したがって、0 の入力は常に 0.0 にマップされます)。

scaling_factor は、次の

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);
 
を使用して、`QuantizeAndDequantize{V2|V3}` および `QuantizeV2` と互換性のある方法で、`min_range`、`max_range`、および `narrow_range` から決定されます。

ネストされたクラス

クラス逆量子化オプションDequantizeのオプションの属性

定数

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

パブリックメソッド

出力<U>
asOutput ()
テンソルのシンボリック ハンドルを返します。
静的Dequantize.Options
(長軸)
static <U extends TNumber >逆量子化<U>
create ( Scopeスコープ、オペランド<? extends TType > input、オペランド< TFloat32 > minRange、オペランド< TFloat32 > maxRange、Class<U> dtype、 Options... options)
新しい逆量子化操作をラップするクラスを作成するファクトリ メソッド。
静的逆量子化< TFloat32 >
create ( Scopeスコープ、オペランド<? extends TType > input、オペランド< TFloat32 > minRange、オペランド< TFloat32 > maxRange、オプション... options)
デフォルトの出力タイプを使用して新しい逆量子化操作をラップするクラスを作成するファクトリ メソッド。
静的Dequantize.Options
モード(文字列モード)
静的Dequantize.Options
ナローレンジ(ブール値のナローレンジ)
出力<U>

継承されたメソッド

定数

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

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

定数値: 「逆量子化」

パブリックメソッド

public Output <U> asOutput ()

テンソルのシンボリック ハンドルを返します。

TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。

public static Dequantize.Options(長軸)

public static Dequantize <U> create (スコープscope、オペランド<? extends TType > input、オペランド< TFloat32 > minRange、オペランド< TFloat32 > maxRange、Class<U> dtype、 Options... options)

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

パラメーター
範囲現在のスコープ
最小範囲入力に対して生成される可能性のある最小スカラー値。
最大範囲入力に対して生成される可能性のある最大スカラー値。
dtype出力テンソルのタイプ。現在、Dequantize は float と bfloat16 をサポートしています。 「dtype」が「bfloat16」の場合、「MIN_COMBINED」モードのみがサポートされます。
オプションオプションの属性値を持ちます
戻り値
  • Dequantize の新しいインスタンス

public static Dequantize < TFloat32 > create ( Scopeスコープ、オペランド<? extends TType > input、オペランド< TFloat32 > minRange、オペランド< TFloat32 > maxRange、オプション... options)

デフォルトの出力タイプを使用して新しい逆量子化操作をラップするクラスを作成するファクトリ メソッド。

パラメーター
範囲現在のスコープ
最小範囲入力に対して生成される可能性のある最小スカラー値。
最大範囲入力に対して生成される可能性のある最大スカラー値。
オプションオプションの属性値を持ちます
戻り値
  • Dequantize の新しいインスタンス

public static Dequantize.Optionsモード(文字列モード)

public static Dequantize.OptionsNarrowRange (ブール値のnarrowRange)

public出力<U>出力()