- 发布日期
是什么
Caffe 是一个用来训练和部署深度模型的 C++ 库,重点在卷积神经网络(convolutional neural network,CNN)。它以 BSD 许可证发布,并附带 Python 和 MATLAB 绑定:使用者用这两种语言写脚本,真正的计算由编译好的 C++ 代码完成。[1] 卷积网络由一层层滤波器堆叠而成,滤波器的参数是从数据里学出来的,不是人工设计的;库要做的事情,是读入一份网络描述,在训练数据上完成前向与反向计算,再把训练好的网络跑在新的输入上。BSD 属于宽松的开源许可证,允许使用、修改和再分发,这对想把库嵌进自家系统的团队有实际意义。
由来
介绍 Caffe 的论文题为《Caffe: Convolutional Architecture for Fast Feature Embedding》,2014 年 6 月 20 日首次发布在 arXiv 上。[1] 作者是 Yangqing Jia、Evan Shelhamer、Jeff Donahue、Sergey Karayev、Jonathan Long、Ross Girshick、Sergio Guadarrama 和 Trevor Darrell。[1] 此后代码由伯克利视觉与学习中心(Berkeley Vision and Learning Center)维护和开发,GitHub 上的贡献者也参与其中:实验室掌握核心代码,外部使用者提交修改和补充。[1]
主要特点
速度是论文强调的重点。Caffe 使用 CUDA 在 GPU 上做计算,论文报告单块 K40 或 Titan GPU 一天可以处理超过 4000 万张图像,约合每张 2.5 毫秒。[1] 这个数字描述的是视觉流水线里的吞吐:一张张图像依次通过网络。
另一个设计是把模型表示与实现分开:网络的描述写在配置文件里,而不是散落在代码中,因此同一个模型可以从做原型的机器搬到云端环境,不必重写。[1] 库还自带一批参考模型,对应当时先进的深度学习算法,使用者可以从一个已经存在的网络起步,而不是从空白文件开始。[1] 作者称,Caffe 支撑了视觉、语音和多媒体领域的研究项目、大规模工业应用以及创业公司的原型。[1]
在发展中的位置
把这几样东西放在一起看——用配置描述网络、成套的参考模型、以每张图毫秒计的 GPU 吞吐——它们共同降低了复现和比较结果的成本。当网络是一份文件而不是一段代码时,这份文件可以直接交给别人,在对方的机器上跑起来;一个公开的模型也让不同的人有共同的起点,而不必各自从头搭一遍。
论文标题里的「快速特征嵌入(feature embedding)」点明了同一层意思:先把图像高效地变成特征表示,识别之类的任务再在这些表示之上进行。论文给 Caffe 划定的范围是卷积网络和其他深度模型,作者举出的应用场景是视觉、语音与多媒体中的研究项目、工业部署和早期产品,而不是某一个固定用途。[1] 所以它的特点不在于某一项单独的技术,而在于几件分开说都很朴素的事情同时具备:宽松的许可证、让人用 Python 或 MATLAB 就能上手的绑定、搬到集群也不用改的模型格式、可以直接拿来用的参考模型,以及以「单块 GPU 每天处理多少张图」来衡量的速度。[1]
注释与来源
- Caffe: Convolutional Architecture for Fast Feature Embeddinghttps://arxiv.org/abs/1408.5093
引用本页: Caffe. TellWorld, https://www.tellworld.net/zh/products/caffe. 更新于 2026-11-08