怎么对TensorFlow进行假量化
2018-10-16 18:04 更新
tf.fake_quant_with_min_max_args
fake_quant_with_min_max_args(
inputs,
min=None,
max=None,
num_bits=None,
narrow_range=None,
name=None
)
参见指南:张量变换>假量化
假量化的 '输入(inputs)' 张量,类型浮动到相同类型的 '输出(outputs)' 张量.
属性 [min; max] 定义 inputs 数据的钳位范围.inputs 值被量化为量化范围([0; 2^num_bits - 1] 当 narrow_range为假的,并且 [1; 2^num_bits - 1] 为真时),然后被去量化(de-quantized)并作为 [min; max] 间隔中的浮点输出.num_bits 是量化的位宽;介于 2 和 8 之间(包含).
量化被称为假,因为输出仍处于浮点状态.
参数:
- inputs:float32 类型的张量.
- min:可选浮点型.默认值为-6.
- max:可选浮点型.默认值为6.
- num_bits:可选的整数型.默认值为8.
- narrow_range:可选布尔值.默认取值为 False.
- name:操作的名称(可选).
返回:
float32 类型的张量.
tf.fake_quant_with_min_max_args_gradient
fake_quant_with_min_max_args_gradient(
gradients,
inputs,
min=None,
max=None,
num_bits=None,
narrow_range=None,
name=None
)
参见指南:张量变换>假量化
计算 FakeQuantWithMinMaxArgs 操作的梯度.
参数:
- gradients:float32 类型的张量.在 FakeQuantWithMinMaxArgs 操作之上的反向传播(Backpropagated)梯度.
- inputs:float32 类型的张量.作为 FakeQuantWithMinMaxArgs 操作的输入传递的值.
- min:可选的浮点型,默认为-6.
- max:可选的浮点型,默认为6.
- num_bits:可选的整数型,默认为8.
- narrow_range:可选的布尔值,默认为 False.
- name:操作的名称(可选).
返回:
float32 类型的张量.FakeQuantWithMinMaxArgs 操作之下的反向传播(Backpropagated)梯度:gradients * (inputs >= min && inputs <= max).