1. 程式人生 > >【caffe2從頭學】:學習caffe2

【caffe2從頭學】:學習caffe2

1.[操作符]總覽(Operators Overview)

1.1.什麼是Operators

簡而言之,我們可以把它看做是更加靈活的caffe1.0中的layer:

![這裡寫圖片描述](https://img-blog.csdn.net/20180831165727788?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzI1MTA0NA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/0)
  如上圖所示,caffe2僅僅是把caffe1.0中的w,b拿下來當做輸入了,中間的layer換了個叫法叫做operators。

1.2.Operators庫

operators-catalogue:https://caffe2.ai/docs/operators-catalogue.html
【我們之後有會專開一篇介紹。】

1.3.編寫自己的自定義Operators

這個頁面介紹編寫自定義操作符:https://caffe2.ai/docs/custom-operators.html
【我們之後有會專開一篇介紹。】

1.4.稀疏Operators

Caffe2支援表示稀疏特徵並對張量段執行相應的操作。請參閱稀疏運算子指南:https://caffe2.ai/docs/sparse-operations.html
【我們之後有會專開一篇介紹。】

2.在iOS / Android上整合Caffe2(Integrating Caffe2 on iOS/Android)

在iOS / Android上整合Caffe2:https://caffe2.ai/docs/mobile-integration.html
【我們之後有會專開一篇介紹。】

3.分散式訓練(Distributed Training)

Caffe2最重要的功能之一是簡單的內建分散式訓練。這意味著您可以非常快速地向上或向下擴充套件而無需重構您的設計。
  【因為我的電腦是單GPU的,所以目前暫時用不到】:https://caffe2.ai/docs/distributed-training.html

4.資料集(Datasets)

1.caffe2 有專門的 Models and Datasets tutorial:https://caffe2.ai/docs/tutorial-models-and-datasets.html來介紹資料集的提取與製作。
2.你也可以依照Caffe2 Python tutorial:https://caffe2.ai/docs/tutorial-MNIST.html下載一個 MNIST handwriting dataset來解壓載入感受一下caffe2的資料集。
3.同時,你也可以去t Caffe2’s Model Zoo:https://caffe2.ai/docs/zoo.html。你也可以從中找到某些作者利用公開資料集製作caff2適用的資料集的程式碼。
4.caffe2官方提供的適用caffe2的資料集在這裡:https://caffe2.ai/docs/datasets.html

【當然,我們知道caffe2同caffe1一樣適用 LevelDB格式的資料集,所以,後期我們會專門開一個部落格介紹怎樣把自己的圖片製作成caffe2適用的LevelDB格式的資料集】

5.caffe2的模型庫(Caffe2 Model Zoo)

caffe2訓練好的模型庫可以在這裡找到:https://github.com/caffe2/models

5.1.caffe1 的模型需要轉換到caffe2模型

Caffe2使用更新的格式,通常是protobuf .pb檔案格式,因此原始.caffemodel檔案將需要轉換。
這裡有模型轉換教程:https://caffe2.ai/docs/caffe-migration.html

5.2.如何下載和載入已經訓練好的caffe2 Models

在Caffe2中載入一個預先訓練過的模型來執行諸如物件檢測等預測之類的事情非常簡單。

您需要兩個檔案:
  1)定義網路的protobuf,
  2)具有所有網路權重的protobuf。

第一個通常稱為predict_net,第二個通常稱為init_net。predict_net很小,而init_net通常很大。下面是兩個用於執行Squeezenet模型的protobuf檔案。單擊圖示以下載它們。