日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > Caffe >内容正文

Caffe

Caffe官方教程翻译(4):CIFAR-10 turorial

發布時間:2025/3/21 Caffe 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Caffe官方教程翻译(4):CIFAR-10 turorial 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近打算重新跟著官方教程學習一下caffe,順便也自己翻譯了一下官方的文檔。自己也做了一些標注,都用斜體標記出來了。中間可能額外還加了自己遇到的問題或是運行結果之類的。歡迎交流指正,拒絕噴子!
官方教程的原文鏈接:http://caffe.berkeleyvision.org/gathered/examples/cifar10.html

Alex’s CIFAR-10 tutorial, Caffe style

Alex Krizhevskycuda-convert詳細描述了在CIFAR-10數據集上取得了不錯的表現的模型的定義,參數,以及訓練過程等信息。這個例子就是對他的研究結果的基于caffe復現。

事先聲明,我們默認你已經成功地編譯了Caffe源碼。如果沒有,請參考Installation Page。在這篇教程中,我們也默認認為你的caffe安裝在CAFFE_ROOT。

感謝@chyojn對定義模型的模式和解決方案的配置提供幫助。

這個例子也還只會一個半成品。最好還是進一步解釋網絡和訓練選擇的細節,并對整個訓練進行基準測試。

準備數據集

首先你需要從CIFAR-10 website下載并轉換數據集。為了做到這個,直接運行下面的命令:

cd $CAFFE_ROOT ./data/cifar10/get_cifar10.sh ./examples/cifar10/create_cifar10.sh

如果終端反饋報錯說wget或是gunzip沒有安裝,你還需要分別安裝他們。在運行了上面的腳本之后,就可以得到數據集:./cifar10-leveldb,還有數據集圖像均值文件:./mean.binaryproto。

模型

CIFAT-10模型是一個由卷積層、池化層、ReLu非線性單元、以及對比規范化的卷積神經網絡,在所有層的最上層有一個線性分類器。我們已經把這個模型定義在了:CAFFE_ROOT/examples/cifar10/cifar10_quick_train_test.prototxt。

訓練并測試”快捷“模型

在你已經寫好了定義網絡的prorbuf和解決方案的protobuf后,訓練模型是很簡單的(參考MNIST Tutorial)。直接運行train_quick.sh,或是輸入如下指令:

cd $CAFFE_ROOT ./examples/cifar10/train_quick.sh

train_quick.sh是一個很簡單的腳本,所以打開它看看。主要的訓練工具就是有train模式的caffe,并且解決方案的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

基于solver文件的設置,每迭代100次我們會打印出訓練的loss函數值,并每迭代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是訓練的損耗函數。對于測試階段的輸出值,score 0表示的是準確率,score 1表示額是測試集的loss函數輸出值。

喝杯咖啡去吧,回來差不多就結束了。

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。保存好的這個模型文件也可以在CPUGPU模式下進行部署。如果要在新的數據集下部署這個模型,請查閱CAFFE_ROOT/examples/cifar10/cifar10_quick.prototxt文件。

為什么要在GPU上訓練?

盡管CIFAR-10數據集依然比較小,但卻已經有足夠多的數據使得GPU的訓練顯得很有吸引了了。

如果要對比GPUCPU的訓練速度,可以在cifar*solver.prototxt中修改一行:

# solver mode: CPU or GPU solver_mode: CPU

然后你就可以使用CPU模式來訓練了。

總結

以上是生活随笔為你收集整理的Caffe官方教程翻译(4):CIFAR-10 turorial的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。