文 / 出门问问信息科技有限公司算法
来源 | TensorFlow 公众号性能优化
热词唤醒 (Keyword Spotting) 每每是用户对语音交互体验的第一印象,要作到准确快速。所以热词检测算法要同时保证高唤醒率和低误唤醒率,可以准确地区分热词和非热词的音频信号。主流的热词检测方法,一般使用深度神经网络来从原始音频特征中提取 high-level 的抽象特征(见下图)。为了可以在计算性能和内存大小都很是有限的嵌入式设备上作到 “Always On” 和 “低延迟”,咱们使用 TensorFlow Lite 做为神经网络模型的部署框架,既可以很好地兼容基于 TensorFlow 的模型训练流程,也可以提供很是高效和轻量的嵌入式端运行时 (Runtime)。网络
在神经网络结构大致肯定的状况下,会显著影响最终计算性能的主要是:模型量化 (Quantization),计算图的优化 (Computation Graph Optimization),以及 Ops 计算核的实现。使用 TensorFlow Lite 部署热词检测模型的开发工做主要也是在这三方面。框架
应用 Simulated Quantization 进行模型训练 在嵌入式设备上部署神经网络模型时,一般使用模型 “量化” (Quantization) 来减小模型参数须要的空间大小,而且提升计算吞吐量 (throughput)。使用 TensorFlow 能够在模型训练时经过增长 FakeQuant 节点来实现 “Simulated Quantization”,在前向计算 (forward) 时模拟参数定点化带来的精度损失。FakeQuant 节点能够在构建模型计算图时手动添加,对于常见的网络结构也可使用 TensorFlow contrib/quantize 工具,自动在模型训练的计算图中匹配须要进行参数量化的 Layers,并在合适的位置加入 FakeQuant 节点。函数
使用 TOCO 进行模型转换工具
使用 TensorFlow Lite 在嵌入式平台进行部署,须要使用 TOCO 工具进行模型格式转换,同时会对神经网络的计算图进行各类变换优化,好比会去掉或者合并没必要要的常量计算,会将部分激活函数计算融合到相关 FullyConnected 或者 Conv2D 节点等,以及处理模型量化 (Quantization) 相关操做。若是不涉及到 Custom Ops,在模型转换这个环节,主要须要关注的两个方面是:性能
1)正确处理Quantization参数和FakeQuant相关节点 2)避免转换后的计算图中出现低效的节点学习
Custom Ops 实现和性能优化测试
若是模型的神经网络结构中用到了目前 TensorFlow Lite 尚不支持的操做,能够以 Custom Op 方式实现相应计算核 (kernel)。要在 Custom Op 中实现高效计算,须要根据数据维度充分利用 SIMD 指令集的加速,而且减小没必要要的内存读写。在快速原型阶段,对于 Custom Op 中的向量和矩阵运算,能够调用 tensor_util 中的函数,充分利用 TFLite 中已有的优化实现。而若是 TFLite 已有的函数不能知足需求,能够调用更加底层的高性能计算库,例如 float 类型能够调用 Eigen,int8 类型能够调用 gemmlowp,TFLite 中 Builtin Ops 的计算核提供了调用示例。优化
咱们按照上述流程将热词检测中的神经网络推理在 TensorFlow Lite 框架中实现,并部署到小问音箱上进行性能和效果的测试。在音箱的低功耗 ARM 处理器 (Cortex-A7) 上,基于 TensorFlow Lite 的神经网络推理计算,相比于咱们原有内部开发的神经网络推理框架,计算性能有 20%~30% 的提高。考虑到咱们内部推理框架已经针对 8-bit 低精度模型和 ARM 计算平台进行了至关充分的性能优化,所以咱们认为 TensorFlow Lite 在嵌入式平台上的计算性能表现是很是优秀的。用 TensorFlow Lite 进行模型部署,结合 TensorFlow 用于模型训练,使咱们整个深度学习开发流程更为统一和高效。例如,得益于 Simulated Quantization,咱们在模型量化过程当中可以更好地处理例如 BatchNorm 等网络结构,而且在训练阶段能够 fine-tune 模拟量化后的模型,所以应用 TensorFlow Lite 以及相关的训练和部署流程以后,咱们的热词检测模型在相同误唤醒水平下唤醒率会有约 3% 的提高。此外,根据咱们实际经验,使用 TensorFlow Lite 可让咱们应用和优化新模型结构的开发周期,从大于一个月缩短到小于一个星期,极大地提高了嵌入式端深度学习开发的迭代速度。
此内容为精简版,想要阅读完整版案例说明,请点击此连接☛ www.tensorflowers.cn/t/6306