量子化されたテンソル `input` を指定して、新しい量子化パラメータで再量子化します。
{input_scales, input_zero_points, input_quantization_axis, input_quantization_min_val, input_quantization_max_val} を使用して量子化された量子化されたテンソル `input` が与えられた場合、{output_scales, output_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.Options | UniformRequantize のオプション属性 |
公開メソッド
出力<U> | asOutput () テンソルのシンボリック ハンドルを返します。 |
static <U, T> UniformRequantize <U> | create ( Scope scope、オペランド<T> input、オペランド<Float> inputScales、オペランド<Integer> inputZeroPoints、オペランド<Float> outputScales、オペランド<Integer> outputZeroPoints、Class<U> Tout、Long inputQuantizationMinVal、Long inputQuantizationMaxVal、Long outputQuantizationMinVal、長い outputQuantizationMaxVal、オプション...オプション) 新しい UniformRequantize 操作をラップするクラスを作成するファクトリ メソッド。 |
static UniformRequantize.Options | inputQuantizationAxis (長い inputQuantizationAxis) |
出力<U> | 出力() 出力は、形状が入力と同じ Tout の量子化された Tensor です。 |
static UniformRequantize.Options | outputQuantizationAxis (長い outputQuantizationAxis) |
継承されたメソッド
公開メソッド
public Output <U> asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow 操作への入力は、別の TensorFlow 操作の出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
public static UniformRequantize <U> create ( Scope scope, Operand <T> input, Operand <Float> inputScales, Operand <Integer> inputZeroPoints, Operand <Float> outputScales, Operand <Integer> outputZeroPoints, Class<U> Tout, Long inputQuantizationMinVal, Long inputQuantizationMaxVal、Long outputQuantizationMinVal、Long outputQuantizationMaxVal、オプション... options)
新しい UniformRequantize 操作をラップするクラスを作成するファクトリ メソッド。
パラメーター
範囲 | 現在のスコープ |
---|---|
入力 | Tin のテンソルでなければなりません。 |
入力スケール | `input` が表す元のデータを量子化するときにスケールとして使用される float 値。 quantization_axis が -1 (テンソルごとの量子化) の場合はスカラー テンソルでなければなりません。そうでない場合は、サイズ (input.dim_size(quantization_axis),) (軸ごとの量子化) の 1D テンソルです。 |
入力ゼロポイント | `input` が表す元のデータを量子化するときに zero_point として使用される int32 値。鱗と同じ形状条件。 |
出力スケール | `input` が表す元のデータを量子化するための新しいスケールとして使用する float 値。 quantization_axis が -1 (テンソルごとの量子化) の場合はスカラー テンソルでなければなりません。そうでない場合は、サイズ (input.dim_size(quantization_axis),) (軸ごとの量子化) の 1D テンソルです。 |
出力ゼロポイント | `input` が表す元のデータを量子化するための新しい zero_point として使用する int32 値。鱗と同じ形状条件。 |
トウト | 出力テンソルの型。 tf.DType から: tf.qint8、tf.qint32 |
入力量子化最小値 | 「input」が表す元のデータを量子化するときに使用された量子化の最小値。この属性の目的は通常 (ただしこれに限定されません) 狭い範囲を示すことです。これは次のように設定されます: 狭い範囲の場合は `(Tin 最低値) + 1`、それ以外の場合は `(Tin 最低値)`。たとえば、Tin が qint8 の場合、狭い範囲が量子化されている場合は -127 に設定され、そうでない場合は -128 に設定されます。 |
入力量子化最大値 | 「input」が表す元のデータを量子化するときに使用された量子化最大値。この属性の目的は、通常 (ただしこれに限定されません) 狭い範囲を示すことです。これは、狭い範囲と狭い範囲の両方に対して `(Tout max)` に設定されます。たとえば、Tin が qint8 の場合、これは 127 に設定されます。 |
outputQuantizationMinVal | `input` が表す元のデータを量子化するための新しい量子化最小値。 |
outputQuantizationMaxVal | `input` が表す元のデータを量子化するための新しい量子化最大値。 |
オプション | オプションの属性値を運ぶ |
戻り値
- UniformRequantize の新しいインスタンス
public static UniformRequantize.Options inputQuantizationAxis (長い inputQuantizationAxis)
パラメーター
入力量子化軸 | 「input」が表す元のデータを量子化するときに使用された量子化軸。その次元に沿ったスライスに軸ごとの量子化が適用されるテンソルの次元インデックスを示します。 -1 (デフォルト) に設定すると、テンソルごとの量子化を示します。それ以外の場合は、範囲 [0, input.dims()) 内に設定する必要があります。 |
---|
public static UniformRequantize.Options outputQuantizationAxis (Long outputQuantizationAxis)
パラメーター
outputQuantizationAxis | `input` が表す元のデータを量子化するために使用する新しい量子化軸。 |
---|