高性能的手机端神经网络计算框架

腾讯开源的一个专为手机端设计的高性能神经网络前向计算框架,具有无第三方依赖、跨平台、速度快等特点。高性能的手机端神经网络计算框架ncnn 是一个针对移动平台优化的性能神经网络推理计算框架。ncnn 从设计之初就深思熟虑在手机上的部署和使用。ncnn 没有第三方依赖项。它是跨平台的,并且比所有已知的手机 CPU 上的开源框架运行得更快。开发者可以通过高效的 ncnn 实现,轻松嵌入深度学习算法模型部署到移动平台,创建智能 APP,让人工智能触手可及。

特征

  • 支持结构神经网络,支持多输入和多分支结构,可以计算部分分支
  • 无第三方库依赖,不依赖 BLAS/NNPACK 或任何其他计算框架
  • 纯 C++实现,跨平台,支持 Android、iOS 等
  • ARM NEON 提出了级优化,计算速度极高
  • 精密的内存管理和数据结构设计,内存占用极低
  • 支持多核计算加速、ARM big.LITTLE CPU 调度优化
  • 通过下一代低头部 Vulkan API 支持 GPU 加速
  • 可扩展的模型设计,支持 8 位量化和半精度浮点存储,可导入 caffe/pytorch/mxnet/onnx/darknet/keras/tensorflow(mlir)模型
  • 支持直接内存零拷贝引用加载网络模型
  • 可以注册自定义层实现并扩展

支持的平台矩阵

  • ✅ = 已知的工作和运行速度快且优化良好
  • ✔️ = 已知的工作,但速度可能不够快
  • ❔ = 应该有效,但尚未确认
  • / = 未应用高性能的手机端神经网络计算框架

项目实例

挤压网络图像分类

如何构建和运行

步骤 1:

https://Github.com/Tencent/ncnn/releases
  • 下载 ncnn-YYYYMMDD-android-vulkan.zip 或自己为 Android 构建 ncnn
  • 将 ncnn-YYYYMMDD-android-vulkan.zip 解压到 app/src/main/jni 中,并将 app/src/main/jni/CMakeLists.txt 中的 ncnn_DIR 路径更改为自己的路径

步骤 2: 使用 Android Studio 打开该项目,构建即可高性能的手机端神经网络计算框架

SCRFD 人脸检测

这是一个示例 ncnn android 项目,它依赖于 ncnn 库和 opencv

如何构建和运行

步骤 1:

https://github.com/Tencent/ncnn/releases
  • 下载 ncnn-YYYYMMDD-android-vulkan.zip 或自己为 Android 构建 ncnn
  • 将 ncnn-YYYYMMDD-android-vulkan.zip 解压到 app/src/main/jni 中,并将 app/src/main/jni/CMakeLists.txt 中的 ncnn_DIR 路径更改为自己的路径

步骤 2:

https://github.com/nihui/opencv-mobile
  • 下载 opencv-mobile-XYZ-android.zip
  • 将 opencv-mobile-XYZ-android.zip 解压到 app/src/main/jni 中,并在 app/src/main/jni/CMakeLists.txt 中将 OpenCV_DIR 路径更改为您的路径 步骤 3: 使用 Android Studio 打开该项目,构建即可高性能的手机端神经网络计算框架

传送门

GitHub:https://github.com/Tencent/ncnn

-END-


原文始发于微信公众号(开源技术专栏):高性能的手机端神经网络计算框架

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/170937.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!