Repolode
Tencent

Tencent/ncnn

一个用 C++ 编写的高性能神经网络推理框架,用于在手机、嵌入式和桌面设备上运行深度学习模型。

可替代:TensorFlow LiteCore ML

Star
23,985
Fork
4,532
未关闭 Issue
1,268
最近提交
昨天

这是什么?

ncnn 是一个用 C++ 编写的神经网络推理框架,用于将训练好的模型部署到手机、PC、浏览器和边缘设备上。它没有第三方运行时依赖,可以在 CPU(包含 ARM NEON 优化)或 Vulkan GPU 上运行。

通过 pnnx 工具可以把 PyTorch 和 ONNX 模型转换为 ncnn 的 .param 和 .bin 格式,再通过 C++、C 或 Python 接口加载。框架支持多输入多输出网络、fp16 与 int8 量化推理以及自定义层。编译支持覆盖 Linux、Windows、macOS、Android、iOS、鸿蒙、WebAssembly 以及多种嵌入式开发板。

该项目已应用于腾讯的 QQ、QQ 空间、微信等多款产品。仓库中也包含 YOLO、MobileNet 等经典 CNN 模型的示例,以及 LLM、图像生成等较新场景的演示。

核心功能

  • 01支持 CPU(含 ARM NEON 优化与多核调度)和 Vulkan GPU 推理。
  • 02没有第三方运行时依赖。
  • 03通过 pnnx 工具转换 PyTorch 和 ONNX 模型。
  • 04提供 C++、C 和 Python 接口。
  • 05支持 fp16 和 int8 量化推理以及自定义层。
  • 06可编译到 Android、iOS、鸿蒙、Windows、Linux、macOS 和 WebAssembly。

适用场景

  • 在移动应用中运行目标检测或人脸检测模型。
  • 在嵌入式开发板上部署 PyTorch 模型,避免依赖庞大的运行时。
  • 通过 WebAssembly 在浏览器中执行神经网络推理。
  • 为 C++ 桌面应用增加 AI 功能。

快速上手

  1. 1

    在 PyTorch 环境中安装 pnnx

    pip3 install pnnx
  2. 2

    使用 pnnx.export 将 PyTorch 模型导出为 ncnn 格式

  3. 3

    使用 ncnn C++ 或 Python API 加载生成的模型并进行推理

使用前须知

  • 在许多平台上构建 ncnn 需要参考单独的 how-to-build 维基指南。
  • 元数据中的许可证未明确指定,但 README 徽章显示为 BSD 3-Clause,使用前请查看 LICENSE.txt。

标签

常见问题

ncnn 是什么?
一个用 C++ 编写的高性能神经网络推理框架,用于在手机、嵌入式和桌面设备上运行深度学习模型。 ncnn 是一个用 C++ 编写的神经网络推理框架,用于将训练好的模型部署到手机、PC、浏览器和边缘设备上。它没有第三方运行时依赖,可以在 CPU(包含 ARM NEON 优化)或 Vulkan GPU 上运行。
ncnn 可以免费使用吗?用的什么许可证?
ncnn 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
ncnn 还在维护吗?
活跃维护中。ncnn 最近一次提交是在 2026年10月20日。
ncnn 适合用来做什么?
在移动应用中运行目标检测或人脸检测模型。 在嵌入式开发板上部署 PyTorch 模型,避免依赖庞大的运行时。 通过 WebAssembly 在浏览器中执行神经网络推理。 为 C++ 桌面应用增加 AI 功能。
ncnn 怎么安装和运行?
在 PyTorch 环境中安装 pnnx: pip3 install pnnx 使用 pnnx.export 将 PyTorch 模型导出为 ncnn 格式 使用 ncnn C++ 或 Python API 加载生成的模型并进行推理
在哪里获取 ncnn?
源代码和安装说明在 GitHub 上:https://github.com/Tencent/ncnn

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目