ZHCACO4 may   2023 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM68A , AM69A

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 目标读者
    2. 1.2 主机信息
  5. 2创建数据集
    1. 2.1 收集图像
    2. 2.2 标记图像
    3. 2.3 增强数据集(可选)
  6. 3选择模型
  7. 4训练模型
    1. 4.1 输入优化(可选)
  8. 5编译模型
  9. 6使用模型
  10. 7构建最终应用
    1. 7.1 使用 TI 的 Gstreamer 插件优化应用
    2. 7.2 使用原始 MIPI-CSI2 摄像头
  11. 8总结
  12. 9参考文献

输入优化(可选)

训练 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 步骤。

如果混合网络在一些层上使用多个量化级别(如 8 位)、而在另一些层上使用 16 位,则将具有多个量化函数。尽管如此,在整个网络中保持相同的权重范围将减少削波量。