「入力」テンソルを 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))
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)
scaling_factor は、次のアルゴリズムを使用して、`QuantizeAndDequantize{V2|V3}` および `QuantizeV2` と互換性のある方法で、`min_range`、`max_range`、および `narrow_range` から決定されます。
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);
ネストされたクラス
クラス | 逆量子化オプション | Dequantize のオプションの属性 |
定数
弦 | OP_NAME | TensorFlow コア エンジンによって認識される、この演算の名前 |
パブリックメソッド
出力<U> | asOutput () テンソルのシンボリック ハンドルを返します。 |
静的Dequantize.Options | 軸(長軸) |
static <U extends TNumber >逆量子化<U> | |
静的逆量子化< TFloat32 > | |
静的Dequantize.Options | モード(文字列モード) |
静的Dequantize.Options | ナローレンジ(ブール値のナローレンジ) |
出力<U> | 出力() |
継承されたメソッド
定数
パブリック静的最終文字列OP_NAME
TensorFlow コア エンジンによって認識される、この演算の名前
パブリックメソッド
public Output <U> asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
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 の新しいインスタンス