项目简介
Bolt 是一款轻量级的深度学习库,旨在作为通用神经网络的部署工具,目标是自动化部署流程并实现极致的加速性能。该项目已经在华为公司的多个部门得到广泛的应用,包括2012实验室、消费者业务和华为产品线等。若您在使用过程中有疑问或建议,可以通过指定的QQ群进行交流:833345709。
Bolt的优势
- 高性能:Bolt 比现有的开源加速库快 15%以上。
- 丰富的模型转换功能:支持 Caffe、ONNX、TFLite、Tensorflow 等多种格式。
- 多种推理精度:支持 FP32、FP16、INT8 和 1-BIT 等精度。
- 多平台支持:涵盖 ARM CPU、X86 CPU 以及多家 GPU 平台(如 Mali、Qualcomm、Intel、AMD)。
- 广泛应用:首次支持自然语言处理(NLP)任务,同时也支持计算机视觉(CV)常见应用。
- 内存占用最小化:优化 ROM/RAM 使用。
- 丰富的图优化功能:如高效的线程绑定设置,自动算法调优和时间序列数据加速等。
如何构建 Bolt
Bolt 支持在多个常用平台上进行推理,用户可根据设备环境进行选择。如果需要在设备上构建训练模块,您可以添加 --train
选项;如果需要使用多线程并行执行,可以添加 --openmp
选项;在资源受限的设备上(如传感器、MCU)使用时,可参考相关文档进行最低限度构建。
快速入门
要开始使用 Bolt,跟随以下两步即可:
- 模型转换:使用工具将 Caffe、ONNX、TFLite 或 Tensorflow 的模型转换为
.bolt
文件。 - 推理执行:运行推理程序并使用
.bolt
文件和数据获得推理结果。
具体工具的使用详情,请参考用户手册中的说明。
Bolt 的深度学习应用
在 Bolt 中,有很多有趣且实用的应用示例,如:
- 图像分类
- 人脸检测
- 姿势检测
- 语义分析
- 阅读理解
- 中文语音识别
这些应用展示了 Bolt 在计算机视觉、自然语言处理和推荐系统等任务上的高效表现。
已验证的网络
Bolt 在推理常见的 CV、NLP 和推荐神经网络上表现出色。已验证的一些代表性网络包括:
- 计算机视觉:Resnet50、Mobilenet_v3、YOLOv5 等
- 自然语言处理:Bert、Tinybert、GPT-2 等
- 推荐系统:NFM、AFM、DeepFM 等
用户可以进一步探索更多的支持模型。
设备端训练
Bolt 提供了设备端训练的功能,支持在嵌入式设备和服务器上对 Lenet、Mobilenet_v1 和 Resnet18 进行训练。
文档和教程
有关 Bolt 的详细信息,请参考存储在文档中的说明,包括各类部署指南、示例使用、常见问题解答等。此外,还有一些在线文章和教程可以帮助用户更深入地了解 Bolt 的使用和优化技术。
许可协议
Bolt 项目采用 MIT 许可协议,这意味着用户可以自由地使用、复制、修改和分发此软件。