Shortcuts

动态量化

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

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

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

最简单的用法是提供dtype参数,可以是float16或qint8。默认情况下,对于具有较大权重尺寸的层(即线性和RNN变体),会执行仅权重量化。

可以通过 qconfigmapping 进行细粒度控制,它们的作用类似于 quantize()。 如果提供了 qconfig,则 dtype 参数将被忽略。

Parameters
  • 模型 – 输入模型

  • qconfig_spec

    要么:

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

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

  • inplace – 就地执行模型转换,原始模块会被改变

  • 映射 – 将子模块的类型映射到相应的动态量化版本的类型,该子模块需要被替换为该类型

优云智算