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