caffe CIFAR 10官方文件中文版

2022-09-13 03:15:12 字數 3455 閱讀 1999

alex krizhevsky的cuda-convnet詳細介紹了模型定義,引數和培訓程式,以便在cifar-10上獲得良好的效能。這個例子再現了他在caffe的結果。

我們將假設你已經成功編譯了caffe。如果沒有,請參閱安裝頁面。在本教程中,我們假設您的caffe安裝位於caffe_root

我們感謝@chyojn定義模型模式和求解器配置的pull請求。

這個例子是乙個正在進行的工作。這將是很高興進一步解釋網路和培訓選擇的細節和基準的全面培訓。

cd $caffe_root

./data/cifar10/get_cifar10.sh

./examples/cifar10/create_cifar10.sh

如果它抱怨wgetgunzip沒有安裝,你需要分別安裝它們。執行指令碼後應該有資料集./cifar10-leveldb,和資料集影象的意思./mean.binaryproto

cifar-10模型是乙個cnn,它包括卷積,合併,整流線性單位(relu)非線性的層,以及區域性對比度歸一化,在其頂部的線性分類器。我們已經在caffe_root/examples/cifar10目錄中定義了模型cifar10_quick_train_test.prototxt

在編寫網路定義protobuf和solver protobuf檔案(參見mnist教程)之後,訓練模型很簡單。只需執行train_quick.sh,或直接執行以下命令:

cd $caffe_root

./examples/cifar10/train_quick.sh

train_quick.sh是乙個簡單的指令碼,所以看看裡面。培訓的主要工具是caffetrain行動,並求解protobuf的文字檔案作為其引數。

當你執行**,你會看到很多訊息飛行像這樣:

i0317 21:52:48.945710 2008298256 net.cpp:74] creating layer conv1

i0317 21:52:48.945716 2008298256 net.cpp:84] conv1 <- data

i0317 21:52:48.945725 2008298256 net.cpp:110] conv1 -> conv1

i0317 21:52:49.298691 2008298256 net.cpp:125] top shape: 100 32 32 32 (3276800)

i0317 21:52:49.298719 2008298256 net.cpp:151] conv1 needs backward computation.

這些訊息告訴您每個層,其連線和其輸出形狀的詳細資訊,這可能有助於除錯。初始化後,訓練將開始:

i0317 21:52:49.309370 2008298256 net.cpp:166] network initialization done.

i0317 21:52:49.309376 2008298256 net.cpp:167] memory required for data 23790808

i0317 21:52:49.309422 2008298256 solver.cpp:36] solver scaffolding done.

i0317 21:52:49.309447 2008298256 solver.cpp:47] solving cifar10_quick_train

基於求解器設定,我們將每100次迭代列印訓練損耗函式,並且每500次迭代測試網路。您將看到如下訊息:

i0317 21:53:12.179772 2008298256 solver.cpp:208] iteration 100, lr = 0.001

i0317 21:53:12.185698 2008298256 solver.cpp:65] iteration 100, loss = 1.73643

...i0317 21:54:41.150030 2008298256 solver.cpp:87] iteration 500, testing net

i0317 21:54:47.129461 2008298256 solver.cpp:114] test score #0: 0.5504

i0317 21:54:47.129500 2008298256 solver.cpp:114] test score #1: 1.27805

對於每個訓練迭代,lr是該迭代的學習速率,並且loss是訓練函式。對於測試階段的輸出,得分0是準確度,得分1是測試損失函式。

在給自己一杯咖啡後,你就完成了!

i0317 22:12:19.666914 2008298256 solver.cpp:87] iteration 5000, testing net

i0317 22:12:25.580330 2008298256 solver.cpp:114] test score #0: 0.7533

i0317 22:12:25.580379 2008298256 solver.cpp:114] test score #1: 0.739837

i0317 22:12:25.587262 2008298256 solver.cpp:130] snapshotting to cifar10_quick_iter_5000

i0317 22:12:25.590215 2008298256 solver.cpp:137] snapshotting solver state to cifar10_quick_iter_5000.solverstate

i0317 22:12:25.592813 2008298256 solver.cpp:81] optimization done.

我們的模型實現了〜75%的測試精度。模型引數以二進位制protobuf格式儲存

cifar10_quick_iter_5000

這是準備部署在cpu或gpu模式!請參閱caffe_root/examples/cifar10/cifar10_quick.prototxt可在新資料上呼叫的部署模型定義。

cifar-10,雖然仍然很小,有足夠的資料使gpu訓練有吸引力。

要比較cpu和gpu訓練速度,只需更改一行cifar*solver.prototxt

# solver mode: cpu or gpu

solver_mode: cpu

你將使用cpu進行培訓。

NSURLConnection蘋果官方文件

這篇文章是翻譯的蘋果官方文件,想要看英文原版的可以到蘋果 檢視 也提供了乙個簡單的介面去建立和放棄連線,同時使用很多的delegate 方法去支援連線過程的反饋和控制 如何建立乙個連線呢?connection didreceiveresponse conncetion didreceivedata,...

ArcGIS10官方教程

編輯教程 練習1 總結 1.數位化的時候,要素構造 工具可通過按 tab 鍵來調整位置.1b 2.可為字段設定預設值.1c 3.f6 絕對xy f2 完成草圖 d 方向 w 寬度 l 長度 1d 4.畫面圖層的時候,建立要素 中最下面有個 自動完成面 工具,可以通過封閉直接生成面要素.1d 編輯教程...

007 ArcGIS10官方教程

編輯教程 練習1 總結 1.數位化的時候,要素構造 工具可通過按 tab 鍵來調整位置.1b 2.可為字段設定預設值.1c 3.f6 絕對xy f2 完成草圖 d 方向 w 寬度 l 長度 1d 4.畫面圖層的時候,建立要素 中最下面有個 自動完成面 工具,可以通過封閉直接生成面要素.1d 編輯教程...