caffe2官網信息整理

一.caffe2與caffe的優勢

caffe&caffe2的優劣勢比較

caffe隨着新的計算模式如,分佈式計算,移動計算,降低精度,以及一些非視覺用例上,存在侷限性.
caffe2相比於caffe在以下方向上做了改進:

  • 大規模分佈式訓練一流支持
  • 移動端部署
  • 除了CPU和CUDA外新硬件的支持
  • 靈活的使用未來的新特性,如量化計算
  • 來自facebook應用的大規模壓力測試

caffe2的新特性

最基礎的新單元是operators,你可以認爲這個是來自caffe layer的更加靈活版本.caffe2有400個不同的操作符並且提供了指導方便社區創建和貢獻.更多信息查看 operators information入門教程

二.安裝方式

使用anaconda安裝非常方便:
anaconda官網
具體運行命令如下:

conda install pytorch-nightly=1.0.0.dev20190328 -c pytorch

其中 -c 表示選擇哪個下載通道(channel)
而具體下載哪個版本需要根據你的cuda 和 cudnn版本來定 可以使用

anaconda search pytorch-nightly 

來查看

三.學習資料

  1. 使用預訓練的神經網絡 (簡單)
  2. 創建自己的神經網絡(中等難度)
  3. 使用深度學習創建按自己的app(進階)
初接觸深度學習

邁克爾·尼爾森(Michael Nielsen)撰寫的免費的神經網絡和深度學習在線草案對此進行了廣泛介紹。 如果您是該領域的新手,那麼有關使用神經網絡以及反向傳播如何工作的章節尤其有用。

從代碼和循環鏈路的角度來解釋,參考 斯坦福大學的 andrej karpathy Hacker’s Guide to Neural Networks

在機器學習領域有豐富經驗的研究人員

CVPR ‘14的視覺深度學習教程對於研究人員來說是一個很好的輔助教程。 在掌握了Caffe教程的框架和實踐基礎之後,請在CVPR ‘14教程中探索基本思想和高級研究方向。
這些最新的學術教程涵蓋了機器學習和視覺研究人員的深度學習:

四.教學和示例腳本

教學代碼:

git clone --recursive https://github.com/caffe2/tutorials caffe2_tutorials

初始使用caffe2可以通過 /caffe2/python/examples 來熟悉:

  • char_rnn.py :生成循環卷積神經網絡,該網絡將對您輸入的文本進行採樣並隨機生成類似樣式的文本.RNN and LSTM page 是腳本使用更多的信息.
    *imdb_create_example.py 創建一個包含隨機圖像和標籤的LMDB數據庫,可以使用此作爲基礎來編寫自己的數據導入.
  • resnet50_trainner.py resnet-50的並行多GPU訓練, 如:可以使用其訓練imagenet數據. 更多信息可以查看Synchronous SGD page

初學者教程

模型和數據(primer)
剛接觸caffe和深度學習,從這裏開始發現你可以使用的不同的模型和數據集
加載預訓練模型
利用Model Zoo的優勢,獲取一些經過預先訓練的模型,然後將其用於試運行。 本教程提供了一組準備就緒的不同模型,並將向您展示準備模型和啓動神經網絡的基本步驟。 然後,您可以對它們進行一些圖像或其他測試,並查看它們的性能。
圖片預處理流程
瞭解如何使您的圖像準備好以吸收到預先訓練的模型中,或作爲針對其他數據集的測試圖像。 從手機到網絡攝像頭再到新的醫學圖像,您將需要考慮圖像攝取渠道,以及在任何類型的圖像分類過程中,爲了提高速度和準確性,都需要進行哪些轉換。

  • resizing
  • rescaling
  • HWC to CHW
  • RGB to BRG
  • image prep for Caffe2 ingestion

初次使用caffe2

caffe和caffe2轉換
介紹caffe2 以及如何 講caffe模型轉換成爲caffe2的模型

入門教程
本後續教程將從Blob,Caffe2工作區和張量開始。 它涵蓋了網絡和具體操作,以及如何建立一個簡單的模型並執行它。

caffe2基礎-workspaces,operators,nets
這個IPython教學介紹caffe2的基礎組件:

  • workspaces
  • operators
  • Nets

構建模型
另一個後續教學介紹brew,易於使用API創建模型,將學習到:

  • Operators vs. helper functions
  • brew and arg_scope
  • 制定自定義助手功能

Toy Regression - 繪製線和隨機數據
這個教學顯示以線性迴歸爲主題的更多CAFFE2特徵

  • 生成一些隨機數據作爲模型輸入
  • 使用這些數據創建一個網絡
  • 自動訓練模型
  • 以網絡學到的情況下,檢查隨機梯度下降的結果以及ground truth的參數的變化.

中級教程

MNIST-手寫數字識別
這份教學是一個小的卷積神經網絡(CNN)可以識別手寫字.訓練並測試CNN,我們使用來自MNIST數據集手寫圖像.這個數據集有來自500個不同的人寫的6萬張圖像用於訓練CNN. 另外1萬張測試圖像用於檢查CNN訓練的準確度.
創建你的數據集
動手操作處理caffe2需要的數據.示例使用虹模數據

進階教程

使用caffe2進行多GPU訓練
本教學探索多GPU訓練.我們將向您展示一個基本結構,該結構使用data_parallel_model快速處理ImageNet數據庫的一個子集,其設計與ResNet-50模型相同。我們還將有機會深入瞭解Caffe2的一些C++運算符,它們可以有效地處理圖像管道,構建ResNet模型,在單個GPU上進行訓練並顯示data_parallel_model所包含的一些優化,最後,我們將 放大並展示如何並行化模型,以便可以在多個GPU上運行它。

操作符

Operators是caffe2中的一個基本的計算單元.

編寫你自己的教程

Have a great tutorial that you’ve created or have some ideas? Let’s chat about it - create an Issue to discuss it on Github. The project’s Tutorials repository has more info or you can go straight to Create a Pull Request with your new tutorial.

Would you like to know more?.

編寫你自己的操作符

Fantastic idea! Write custom operators and share them with the community! Refer to the guide on writing operators:
Guide for creating your own operators

信息來源

https://caffe2.ai/docs/tutorials

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章