日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

caffe教程翻译:Alex’s CIFAR-10 tutorial, Caffe style

發布時間:2025/3/15 90 豆豆
生活随笔 收集整理的這篇文章主要介紹了 caffe教程翻译:Alex’s CIFAR-10 tutorial, Caffe style 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://caffe.berkeleyvision.org/gathered/examples/cifar10.html
本文假設caffe安裝在根目錄CAFFE_ROOT下

數據準備

首先需要從CIFAR-10 websit網站上下載并轉換數據格式。運行一下代碼:

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

如果提示wget 或gunzip未安裝,則需要分別安裝它們。運行這些腳本后將產生數據集:./cifar10-leveldb和圖像均值文件:./mean.binaryproto。

模型

Cifar-10模型一個由卷積層(convolution)、池化層(pooling)、矯正線性化單元(rectified linear unit)(ReLU)非線性(nonlinearities)、局部對比正則化(local contrast normalization),并在頂層有一個線性分類器的卷積神經網絡。在 CAFFE_ROOT/examples/cifar10目錄下的cifar10_quick_train_test.prototxt定義了該模型。

訓練并測試“快速”模型

在寫好了網絡定義文件和solver文件后(指MNIST Tutorial),訓練十分簡單。只需運行train_quick.sh或如下代碼:

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

train_quick.sh是一條簡單的腳本,訓練的主要工具是caffe的train動作,在solver文件中定義了它的參數。
在運行代碼過程中,會在屏幕上看到以下輸出:

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表示損失函數。對于帶有testing短語的輸出, score 0代表準確率,score 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%的準確率,模型參數以二進制形式存儲在文件:cifar10_quick_iter_5000中。
參考文件CAFFE_ROOT/examples/cifar10/cifar10_quick.prototxt在新的數據庫上應用模型。

為何在GPU上訓練

在cifar*solver.prototxt文件中修改相應行,來比較CPU與GPU的訓練速度:

# solver mode: CPU or GPU solver_mode: CPU

你會發現,GPU訓練更快速一些。

總結

以上是生活随笔為你收集整理的caffe教程翻译:Alex’s CIFAR-10 tutorial, Caffe style的全部內容,希望文章能夠幫你解決所遇到的問題。

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