quantize_dynamic¶
- class torch.ao.quantization.quantize_dynamic(model, qconfig_spec=None, dtype=torch.qint8, mapping=None, inplace=False)[source][source]¶
将浮点模型转换为动态(即仅权重)量化模型。
将指定的模块替换为动态的仅权重量化版本,并输出量化模型。
对于最简单的用法,请提供 dtype 参数,该参数可以是 float16 或 qint8。默认情况下,仅对权重较大的层(即 Linear 和 RNN 变体)执行仅权重量化。
可以使用与 quantize() 类似作用的 qconfig 和 mapping 进行细粒度控制。如果提供了 qconfig,则 dtype 参数将被忽略。
- 参数
model – 输入模型
qconfig_spec –
任一
从子模块的名称或类型到量化配置的字典映射,qconfig 应用于给定模块的所有子模块,除非指定了子模块的 qconfig(当子模块已经具有 qconfig 属性时)。字典中的条目需要是 QConfig 实例。
一组类型和/或子模块名称以应用动态量化,在这种情况下,dtype 参数用于指定位宽
inplace – 就地执行模型转换,原始模块将被修改
mapping – 将子模块的类型映射到需要替换子模块的相应动态量化版本的类型