基于 PyTorch 的计算机视觉工具库,支持目标检测、实例分割和图像分类的训练与模型导出。
- 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
在 PyTorch 环境中安装 pnnx
pip3 install pnnx - 2
使用 pnnx.export 将 PyTorch 模型导出为 ncnn 格式
- 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 数据每日更新。
相关项目
用于可视化神经网络、深度学习和机器学习模型结构的查看器,支持 ONNX、PyTorch 等多种格式。
PyTorch 官方的端侧推理框架,用于在手机、笔记本、浏览器和微控制器上运行模型。
一个 Python 神经网络压缩框架,通过量化、剪枝和稀疏化加速 OpenVINO 推理,支持 PyTorch 与 ONNX 模型。
基于 PyTorch 实现的 Vision Transformer(ViT)及多种变体,用于图像分类等视觉任务。
一个用 Rust 编写的张量库与深度学习框架,支持训练和推理,可运行在多种 GPU 与 CPU 后端上。