quant_rnn
量化RNN。
类
量化RNN模块的基类。 |
|
带有输入量化器的量化RNN。 |
|
单层的rnn模块。 |
|
重新实现_VF rnn调用,使用Python以启用输入量化器。 |
函数
为不同的RNN单元构建前向调用。 |
|
为打包序列构建前向调用。 |
|
为反向的打包序列构建前向调用。 |
|
目前 _VF.lstm_cell 不接受投影输入。 |
|
在调用单元之前调用输入量化器。 |
- class QuantRNNBase
-
量化RNN模块的基类。
- property all_input_quantizers_disabled
检查是否所有输入量化器都已禁用。
- default_quant_desc_input = QuantizerAttributeConfig(enable=True, num_bits=8, axis=None, fake_quant=True, unsigned=False, narrow_range=False, learn_amax=False, type='static', block_sizes=None, trt_high_precision_dtype='Float', calibrator='max')
- default_quant_desc_weight = QuantizerAttributeConfig(enable=True, num_bits=8, axis=None, fake_quant=True, unsigned=False, narrow_range=False, learn_amax=False, type='static', block_sizes=None, trt_high_precision_dtype='Float', calibrator='max')
- forward(input, *args, **kwargs)
在调用原始的前向方法之前,对输入和权重进行量化。
- property functionals_to_replace: Iterator[Tuple[module, str, Callable]]
动态替换包中的函数。
- quantize_weight()
在其中
self.weight被量化的上下文。
- weight_quantizer: TensorQuantizer | SequentialQuantizer
- class QuantRNNFullBase
基础类:
QuantRNNBase带有输入量化器的量化RNN。
- class RNNLayerForward
基础类:
object单层的rnn模块。
- __init__(cell, reverse=False, variable_len=False)
为不同的单元、方向和输入初始化层前向传播。
- class VFRNNForward
基础类:
object重新实现_VF rnn调用,使用Python以启用输入量化器。
与原始调用相比,效率较低。
- __init__(mode, bidirectional, num_layers, has_proj, has_bias, input_quantizers, proj_input_quantizers=None, batch_first=False)
预先构建必要的参数以用于vf调用,以减少开销。
请参考torch RNN模块以获取参数信息。
- Parameters:
mode (str) –
双向的 (布尔型) –
num_layers (int) –
has_proj (bool) –
has_bias (bool) –
input_quantizers (List[TensorQuantizer]) –
proj_input_quantizers (List[TensorQuantizer] | None) –
batch_first (bool | None) –
- forward(layer_forwards, input, flat_weights, hidden, dropout=0, training=True, batch_sizes=None)
这是vf rnn调用的核心实现。
- Parameters:
layer_forwards (Tuple[Callable]) –
输入 (张量) –
flat_weights (List[Tensor]) –
hidden (Tensor | Tuple[Tensor]) –
dropout (float | None) –
训练 (bool | None) –
batch_sizes (Tensor | None) –
- get_quantized_rnn_layer_forward(cell, reverse=False)
为不同的RNN单元构建前向调用。
请注意,batch_sizes 在这里是为了保持与可变长度前向传播的签名一致。
- get_quantized_rnn_layer_variable_len_forward(cell)
为打包序列构建前向调用。
- get_quantized_rnn_layer_variable_len_reverse_forward(cell)
为反向的打包序列构建前向调用。
- lstm_cell_with_proj(input, hidden, *weights, proj_input_quantizer=None)
目前 _VF.lstm_cell 不接受投影输入。即 h_n 和 c_n 的形状必须相同。
与_VF.lstm_cell相比,此实现未针对cuda进行优化,因此我们仅在存在投影时使用它。
- quantized_cell_forward(cell, input, hidden, weights, input_quantizer, proj_input_quantizer=None)
在调用单元之前调用输入量化器。