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

歡迎訪問 生活随笔!

生活随笔

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

Caffe

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

發布時間:2025/3/15 Caffe 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

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