量子化されたテンソル「入力」を指定して、それを新しい量子化パラメータで再量子化します。
{input_scales, input_zero_points, input_quantization_axis, input_quantization_min_val, input_quantization_max_val} を使用して量子化された量子化テンソル `input` を指定すると、それを {output_scales, input_zero_points, output_quantization_axis, output_quantization_min_val, Output_quantization_max_val} を使用して量子化されたテンソルに再量子化します。再量子化は、次の式を使用して行われます。output_quantized_data = Clip( (input_quantized_data - input_zero_point) * (input_scale / Output_scale) + Output_zero_point、output_quantization_min_val、output_quantization_max_val)
テンソルごとおよび軸ごとの量子化がサポートされるケースは次のとおりです。
- テンソルごと -> テンソルごと
- テンソルごと -> 軸ごと
- 軸ごと -> 軸ごと。ここで、input_quantization_axis は、output_quantization_axis と同じです。つまり、input_quantization_axis と Output_quantization_axis のうちの少なくとも 1 つは -1 であるか、2 つは等しくなければなりません。
ネストされたクラス
クラス | UniformRequantize.オプション | UniformRequantize のオプションの属性 |
パブリックメソッド
出力<U> | asOutput () テンソルのシンボリック ハンドルを返します。 |
静的 <U, T> UniformRequantize <U> | create ( Scopeスコープ、オペランド<T> input、オペランド<Float> inputScales、オペランド<Integer> inputZeroPoints、オペランド<Float> OutputScales、オペランド<Integer> OutputZeroPoints、Class<U> Tout、Long inputQuantizationMinVal、Long inputQuantizationMaxVal、Long OutputQuantizationMinVal、長い出力QuantizationMaxVal、オプション...オプション) 新しいUniformRequantizeオペレーションをラップするクラスを作成するファクトリメソッド。 |
静的UniformRequantize.Options | inputQuantizationAxis (長い入力量子化軸) |
出力<U> | 出力() 出力は Tout の量子化テンソルであり、その形状は入力と同じです。 |
静的UniformRequantize.Options | OutputQuantizationAxis (長い出力量子化軸) |
継承されたメソッド
パブリックメソッド
public Output <U> asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
public static UniformRequantize <U> create ( Scopeスコープ、オペランド<T> input、オペランド<Float> inputScales、オペランド<Integer> inputZeroPoints、オペランド<Float> OutputScales、オペランド<Integer> OutputZeroPoints、Class<U> Tout、Long inputQuantizationMinVal、長い入力量子化最大値、長い出力量子化最小値、長い出力量子化最大値、オプション...オプション)
新しいUniformRequantizeオペレーションをラップするクラスを作成するファクトリメソッド。
パラメーター
範囲 | 現在のスコープ |
---|---|
入力 | Tin のテンソルでなければなりません。 |
入力スケール | 「input」が表す元のデータを量子化するときにスケールとして使用される浮動小数点値。 quantization_axis が -1 (テンソルごとの量子化) の場合はスカラー テンソルでなければなりません。それ以外の場合は、サイズ (input.dim_size(quantization_axis),) (軸ごとの量子化) の 1D テンソルでなければなりません。 |
入力ゼロポイント | 「input」が表す元のデータを量子化するときに、zero_point として使用される int32 値。鱗と同じ形状条件。 |
出力スケール | 「input」が表す元のデータを量子化するための新しいスケールとして使用する浮動小数点値。 quantization_axis が -1 (テンソルごとの量子化) の場合はスカラー テンソルでなければなりません。それ以外の場合は、サイズ (input.dim_size(quantization_axis),) (軸ごとの量子化) の 1D テンソルでなければなりません。 |
出力ゼロポイント | 「input」が表す元のデータを量子化するために新しい zero_point として使用する int32 値。鱗と同じ形状条件。 |
客引き | 出力テンソルのタイプ。 tf.qint8、tf.qint32 からの tf.DType |
入力量子化最小値 | 「input」が表す元のデータを量子化するときに使用された量子化の最小値。この属性の目的は通常 (ただし、これに限定されない) 狭い範囲を示すことです。狭い範囲の場合は「(Tin 最低値) + 1」、それ以外の場合は「(Tin 最低値)」に設定されます。たとえば、Tin が qint8 の場合、狭い範囲で量子化されている場合は -127、そうでない場合は -128 に設定されます。 |
inputQuantizationMaxVal | 「input」が表す元のデータを量子化するときに使用された量子化の最大値。この属性の目的は通常 (ただし、これに限定されない) 狭い範囲を示すことであり、これは狭い範囲と狭い範囲ではない両方の場合に `(Tout max)` に設定されます。たとえば、Tin が qint8 の場合、これは 127 に設定されます。 |
出力量子化最小値 | 「input」が表す元のデータを量子化するための新しい量子化最小値。 |
出力量子化最大値 | 「input」が表す元のデータを量子化するための新しい量子化最大値。 |
オプション | オプションの属性値を持ちます |
戻り値
- UniformRequantize の新しいインスタンス
public static UniformRequantize.Options inputQuantizationAxis (Long inputQuantizationAxis)
パラメーター
入力量子化軸 | 「input」が表す元のデータを量子化するときに使用される量子化軸。軸ごとの量子化がその次元に沿ったスライスに適用されるテンソルの次元インデックスを示します。 -1 (デフォルト) に設定すると、テンソルごとの量子化を示します。それ以外の場合は、範囲 [0, input.dims()) 内に設定する必要があります。 |
---|
public static UniformRequantize.Options OutputQuantizationAxis (Long OutputQuantizationAxis)
パラメーター
出力量子化軸 | 「input」が表す元のデータを量子化するために使用する新しい量子化軸。 |
---|