ZHCACO4 may 2023 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM68A , AM69A
训练 YAML 配置文件时有一个可选参数,用于与量化和编译相关的“input_optimization”。简而言之,它将两个预处理步骤折叠到模型的前几层中,以节省 CPU 周期和 DDR 带宽。此处提供了相关上下文以及模型量化的必要背景,这是编译模型的关键步骤。
模型几乎普遍进行了浮点模型权重和浮点值方面的训练。它们可以进行“量化感知”训练(QAT,即量化感知训练),但权重仍将是浮点格式;权重也可以在训练后进行量化(PTQ 或训练后量化)。PTQ 可将模型转换为定点格式,神经网络加速器通常针对该格式进行了优化。对于 TI 的架构,编译包含创建一个量化函数,将 float32 映射到整数(8 位或 16 位),这有时称为“校准”。此函数在整个网络中是通用的,因此,所有 float32 都处于类似的范围内非常重要,这样它们就能够一致地映射到定点,而不会将非常高或低的值“削波”到有限整数范围(1)。
量化的一个常见步骤是在将浮点数映射到整数时限制削波,方法是将权重和值保持在 -1 到 1 或 0 到 1 的范围内。通过在训练期间使用正则化,在内层更容易做到这一点。对于模型输入,图像通常采用 8 位 RGB 格式,并通过减去均值并乘以比例因子来转换为 float32,这样进入模型的值就位于这个较小且一致的范围内。这是模型的必要预处理步骤,但在 CPU 上执行的效率不高。
“输入优化”是一种通过将预处理纳入模型中来提高预处理效率的策略。通过在输入端创建两个额外的层来在 C7xMMA 上执行此类按元素运算,在该模型中实现减法和乘法运算。这减少了 CPU 使用率和 DDR 使用率,因为可以按原样提供用于 RGB 像素的原始 8/16 位整数,而不是预处理的 32 位浮点值。
在编译过程中,该模型也可采用此 input_optimization 步骤。