@Operator(group="quantization") public final class FakeQuantWithMinMaxVarsPerChannel extends PrimitiveOp implements Operand<Float>
`[b, d]` `[b, h, w, d]` via per-channel floats `min` and `max` of shape `[d]` to 'outputs' tensor of same shape as `inputs`.
`[min; max]` define the clamping range for the `inputs` data. `inputs` values are quantized into the quantization range (`[0; 2^num_bits - 1]` when `narrow_range` is false and `[1; 2^num_bits - 1]` when it is true) and then de-quantized and output as floats in `[min; max]` interval. `num_bits` is the bitwidth of the quantization; between 2 and 16, inclusive.
Before quantization, `min` and `max` values are adjusted with the following logic. It is suggested to have `min <= 0 <= max`. If `0` is not in the range of values, the behavior can be unexpected: If `0 < min < max`: `min_adj = 0` and `max_adj = max - min`. If `min < max < 0`: `min_adj = min - max` and `max_adj = 0`. If `min <= 0 <= max`: `scale = (max - min) / (2^num_bits - 1) `, `min_adj = scale * round(min / scale)` and `max_adj = max + min_adj - min`.
This operation has a gradient and thus allows for training `min` and `max` values.
Modifier and Type | Class and Description |
---|---|
static class |
FakeQuantWithMinMaxVarsPerChannel.Options
Optional attributes for
FakeQuantWithMinMaxVarsPerChannel |
operation
Modifier and Type | Method and Description |
---|---|
Output<Float> |
asOutput()
Returns the symbolic handle of a tensor.
|
static FakeQuantWithMinMaxVarsPerChannel |
create(Scope scope,
Operand<Float> inputs,
Operand<Float> min,
Operand<Float> max,
FakeQuantWithMinMaxVarsPerChannel.Options... options)
Factory method to create a class wrapping a new FakeQuantWithMinMaxVarsPerChannel operation.
|
static FakeQuantWithMinMaxVarsPerChannel.Options |
narrowRange(Boolean narrowRange) |
static FakeQuantWithMinMaxVarsPerChannel.Options |
numBits(Long numBits) |
Output<Float> |
outputs() |
equals, hashCode, op, toString
public static FakeQuantWithMinMaxVarsPerChannel create(Scope scope, Operand<Float> inputs, Operand<Float> min, Operand<Float> max, FakeQuantWithMinMaxVarsPerChannel.Options... options)
scope
- current scopeinputs
- min
- max
- options
- carries optional attributes valuespublic static FakeQuantWithMinMaxVarsPerChannel.Options numBits(Long numBits)
numBits
- public static FakeQuantWithMinMaxVarsPerChannel.Options narrowRange(Boolean narrowRange)
narrowRange
- public Output<Float> asOutput()
Operand
Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is used to obtain a symbolic handle that represents the computation of the input.
asOutput
in interface Operand<Float>
OperationBuilder.addInput(Output)
Copyright © 2022. All rights reserved.