深度學習開源工具——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 做爲本文總結。

相關文章
相關標籤/搜索