动态量化

class torch.ao.quantization.quantize_dynamic(model, qconfig_spec=None, dtype=torch.qint8, mapping=None, inplace=False) [源代码]

将浮点模型转换为动态量化模型(即仅包含权重的量化模型)。

将指定模块替换为动态权重量化的版本,并输出量化后的模型。

为了简单使用,可以通过提供dtype参数来实现,该参数可以设置为float16或qint8。默认情况下,对于具有较大权重的层(如Linear和RNN变体),将进行仅权重量化。

可以通过qconfigmapping实现细粒度控制,它们与quantize()类似。如果提供了qconfig参数,则忽略dtype

参数
  • 模型 – 输入模型

  • qconfig_spec

    要么:

    • 一个将子模块名称或类型映射到量化配置的字典。qconfig 适用于给定模块的所有子模块,除非已为这些子模块指定了特定的 qconfig(当子模块已经具有 qconfig 属性时)。字典中的条目需要是 QConfig 实例。

    • 一组类型和/或子模块名称,用于应用动态量化。在这种情况下,使用dtype参数来指定位宽。

  • inplace - 在原地执行模型转换,原始模块将会被修改

  • mapping – 将子模块的类型映射到其对应动态量化版本的类型的映射关系,以便进行替换。

本页目录