请选择 进入手机版 | 继续访问电脑版
设为首页 收藏本站
开启辅助访问 快捷导航
菜单
从零开始 资讯 查看内容

深度进修|高阶机械进修库——Caffe

2020-2-19 20:15 发布者: 此人正在学习 评论 0 查看 173
Caffe Caffe 全称为 Convolutional Architecture for Fast Feature Embedding,是一个被广泛使用的开源深度学习框架(在 TensorFlow 出现之前一直是深度学习领域 GitHub star 最多的项目),目前由伯克利视觉学中心( ...

Caffe


Caffe 全称为 Convolutional Architecture for Fast Feature Embedding,是一个被普遍利用的开源深度进修框架(在 TensorFlow 出现之前一向是深度进修范畴 GitHub star 最多的项目),今朝由伯克利视觉学中心(Berkeley Vision and Learning Center,BVLC)停止保护。Caffe 的开创人是加州大学伯克利的 Ph.D.贾扬清,他同时也是TensorFlow的作者之一,曾工作于 MSRA、NEC 和 Google Brain,今朝就职于 Facebook FAIR 尝试室。Caffe 的首要上风包括以下几点:
  • 轻易上手,收集结构都是以设置文件形式界说,不需要用代码设想收集;
  • 练习速度快,可以练习 state-of-the-art 的模子与大范围的数据;
  • 组件模块化,可以方便地拓展到新的模子和进修使命上;

Caffe 的焦点概念是 Layer,每一个神经收集的模块都是一个 Layer。Layer 接收输入数据,同时经过内部计较发生输出数据。设想收集结构时,只需要把各个 Layer 拼接在一路组成完整的收集(经过写 protobuf 设置文件界说)。比如卷积的 Layer,它的输入就是图片的全数像素点,内部停止的操纵是各类像素值与 Layer 参数的 convolution 操纵,最初输出的是一切卷积核 filter 的成果。每一个 Layer 需要界说两种运算,一种是正向(forward)的运算,即从输入数据计较输出成果,也就是模子的猜测进程;另一种是反向(backward)的运算,从输出真个 gradient 求解相对于输入的 gradient,即反向传布算法,这部分也就是模子的练习进程。实现新 Layer 时,需要将正向和反向两种计较进程的函数都实现,这部分计较需要用户自己写 C++大概 CUDA (当需要运转在 GPU 时)代码,对普通用户来说还是很是难上手的。正如它的名字 Convolutional Architecture for Fast Feature Embedding 所描写的,Caffe 最起头设想时的方针只针对于图像,没有斟酌文本、语音大概时候序列的数据,是以 Caffe 对卷积神经收集的支持很是好,但对时候序列 RNN、LSTM 等支持得不是出格充实。同时,基于 Layer 的形式也对 RNN 不是很是友爱,界说 RNN 结构时比力麻烦。在模子结构很是复杂时,能够需要写很是冗杂的设置文件才能设想好收集,而且阅读时也比力吃力。

深度进修|高阶机械进修库——Caffe_资讯_2020-2-19 20:15发布_从零开始_173

Caffe 的一大上风是具有大量的练习好的典范模子(AlexNet、VGG、Inception)甚至其他 state-of-the-art (ResNet等)的模子,收藏在它的 Model Zoo (http://github.com/BVLC/ caffe/wiki/Model-Zoo)。由于著名度较高,Caffe 被普遍天时用于前沿的产业界和学术界,很多供给源码的深度进修的论文都是利用 Caffe 来实现其模子的。在计较机视觉范畴 Caffe 利用特别多,可以用来做人脸识别、图片分类、位置检测、方针追踪等。虽然 Caffe 主如果面向学术圈和研讨者的,但它的法式运转很是稳定,代码质量比力高,所以也很合适对稳定性要求严酷的生产情况,可以算是第一个支流的产业级深度进修框架。由于 Caffe 的底层是基于 C++的,是以可以在各类硬件情况编译并具有杰出的移植性,支持 Linux、Mac 和 Windows 系统,也可以编译摆设到移动装备系统如 Android 和 iOS 上。和其他支流深度进修库类似,Caffe 也供给了 Python 说话接口 pycaffe,在打仗新使命,设想新收集时可以利用其 Python 接口简化操纵。不外,凡是用户还是利用 Protobuf 设置文件界说神经收集结构,再利用 command line 停止练习大概猜测。Caffe 的设置文件是一个 JSON 范例的 .prototxt 文件,其中利用很多顺序毗连的 Layer 来描写神经收集结构。Caffe 的二进制可履行法式会提取这些 .prototxt 文件并按其界说来练习神经收集。理论上,Caffe 的用户可以完全不写代码,只是界说收集结构便可以完成模子练习了。Caffe 完成练习以后,用户可以把模子文件打包建形成简单易用的接口,比如可以封装成 Python 或 MATLAB 的 API 。不外在 .prototxt 文件内部设想收集节构能够会比力受限,没有像 TensorFlow 大概 Keras 那样在 Python 中设想收集结构方便、自在。更重要的是,Caffe 的设置文件不能用编程的方式调剂超参数,也没有供给像 Scikit-learn 那样好用的 estimator 可以方便地停止穿插考证、超参数的 Grid Search 等操纵。Caffe 在 GPU 上练习的性能很好(利用单块 GTX 1080 练习 AlexNet 时一天可以练习上百万张图片),可是今朝仅支持单机多 GPU 的练习,没有原生支持散布式的练习。光荣的是,现在有很多第三方的支持,比如雅虎开源的 CaffeOnSpark,可以借助 Spark 的散布式框架实现 Caffe 的大范围散布式练习。

更多行业资讯,更新颖的技术静态,尽在慧都学院。

鲜花

握手

雷人

路过

鸡蛋
收藏 分享 邀请

相关阅读

最新评论

一周热门

头条攻略!

日排行榜

相关分类