深度学习开源工具——caffe介绍

本页是转载caffe的一个介绍,以前的页面图都down了,更新一下。php


目录html

简介

报告时间是北京时间 12月14日 凌晨一点到两点,主讲人是 Caffe 团队的核心之一 Evan Shelhamer。第一次用 GoToMeeting 参加视频会议,效果然是不错。python

报告后分享出了 视频 和 展现文件。另外一讲座,cuDNN: Accelerating Convolutional Neural Networks using GPUs,视频 和 展现文件 也已放出。android

Caffe 此前听过没用过,因此报告前本身试运行了一下,参照 官方教程。Caffe 安装、上手都很快,Protobuf 式的层定义很直观,模型修改或算法调整变得很容易,至关于只须要改配置文件。还找到了他们放在 Google Docs 上一个教程 PPT,DIY Deep Learning for Vision: a Hands-On Tutorial with Caffe (已搬到 墙里),后来发现此次报告的 PPT 就是在这个基础上修改的。ios

本次报告主要内容是git

  • 对机器学习、深度学习的一些介绍,包括若干深度学习的经典模型;
  • Caffe 的优点(模块化、速度、社区支持等)、基本结构(网络定义、层定义、Blob等)和用法(模型中损失函数、优化方法、共享权重等的配置、应用举例、参数调优的技巧),以及将来方向(CPU/GPU 并行化、Pythonification、Fully Convolutional Networks等)。

如下是报告中的截图配上本身的一点笔记,一手资料请参见上面给出的会后分享连接。github

要点记录

PPT 的首页取自该项目的一个在线 demo,输入图片 url,识别物体类别。web

左边是浅层特征,各种别物体杂乱无章;右边是深度特征,一些类别有较为明显的分别。特别地,dog、bird、invertebrate 这三类动物类别离得较近,而 building、vehicle、commodity 这类无生命类别离得较近,可见深度特征的强大。算法

此外,在深层结构当中,隐层神经元的激活可能与特定的物体类别有关,好比有的神经元对人像敏感,而有的对数字或建筑物敏感,最下面一层是闪光灯(或与之相似,好比反光的脑门……)效果。express

Caffe 的优点,网络结构的模块化和易表达是显然的,社区资源也一样强大,好比下两页内容。

Caffe 的 Reference Models 可供学术使用,好比 AlexNet、R-CNN、CaffeNet,包括模型定义、优化方法和预训练权重。

Model Zoo 中有用户贡献的模型可供参考使用,好比 VGG、Network-in-Network。

Caffe 支持丰富的模型表达形式,包括 DAGs、Weight Sharing 以及 Siamese Network。

网络和层定义采用 protobuf 的样式。

Layer 指的是权重和偏置,能够定义链接数、权重初始化方法等。

Blob 是四维数据结构,保存节点上的数值以及模型参数,能够经过编程在 CPU 和 GPU 间传输。

模型定义以外,还须要一个指定优化策略的配置文件,用以训练模型。

使用 Caffe 训练的通常步骤就是

  • 数据预处理;
  • 模型定义;
  • 求解策略定义;
  • 运行。

此处给出了两个例子,Logistic RegressionLearn LeNet on MNIST,都很好 follow。

调参中重点讲了一个 模型迁移的实例,用某项任务已有模型的参数做为新任务模型的参数初始值,而后进行模型训练。

模型训练通常由浅入深,逐步下降学习速率,以保持预训练参数的某些性质。

接下来具体讲述了 Loss、Solver、DAG、Weight Sharing 的概念和配置。

对同一模型,不一样 Solver 的表现有差。

通常深度学习模型是线性形式的,好比 LeNet,而 Caffe 支持 DAG 形式的模型。

Caffe 的近期动向,CPU/GPU 并行化、Pythonification、Fully Convolutional Networks等。

Caffe 的团队,拜 Yangqing Jia 师兄……

文献参考。

提问

语音回答中,Evan 提到 UCB 的一个团队正在开发 Scala 接口,不过尚属实验性质;Caffe 团队在考虑 和 UCB 的 AMP 团队合做,扩展到 Spark 这一计算平台上;除了已支持的 CPU/GPU 计算,也考虑扩展支持 OpenCl;对于 Theano、Torch,鼓励你们尝试、比较……

文字问答以下,由 Yangqing Jia 回复。

Q: Is the pre-trained model avaialbe for download to accelerate our work on other kinds of images?

A: FYI - for pretrained models that we release, please refer to the model zoo page here: http://caffe.berkeleyvision.org/model_zoo.html


Q: Android platform ?

A: People have asked about android/ios platforms. In principle this is possible since the code is purely in C, but of course some engineering efforts are needed to write makefiles like Android.mk for this. Our bandwidth is limited and we are focusing on the research part, but we welcome pull requests on github if you write one (and we thank you in advance)! Also, kindly check out the blog post by my colleague Pete Warden about our efforts on running with Jetson TK1: http://petewarden.com/2014/10/25/how-to-run-the-caffe-deep-learning-vision-library-on-nvidias-jetson-mobile-gpu-board/


Q: Can you discuss status and/or considerations for adding opencl support (and so be vendor neutral, as opposed to NVIDIA CUDA)?

A: In terms of using OpenCL - it has been under discussion for a while, but we are kind of shortstaffed so we focus more on the research side - we welcome contributions from open-source communities of course, please join us at github :)


Q: do you have an online examples of unsupervised losses

A: For unsupevised losses and training there is a bundled example of an MNIST autoencoder.

更多的问答(60+)请参见主办方提供的 Q&A Transcript

总结

“盗取”一页 PPT 做为本文总结。

相关文章
相关标签/搜索