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

歡迎訪問 生活随笔!

生活随笔

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

Caffe

Caffe实践】如何利用Caffe训练ImageNet分类网络

發布時間:2025/7/25 Caffe 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Caffe实践】如何利用Caffe训练ImageNet分类网络 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Caffe實踐】如何利用Caffe訓練ImageNet分類網絡

源文章:https://github.com/BVLC/caffe/tree/master/examples/imagenet


由于要使用Caffe進行深度學習的二次開發,所以找到上面這個如何訓練網絡的一些操作過程,不是每一句都翻譯過來,但是終究不是原創,權當做自己的學習筆記。



==========================================



????? 1.下載好來自ImageNettrainingvalidation數據集合;分別存放在如下的格式:
????/path/to/imagenet/train/n01440764/n01440764_10026.JPEG


?????/path/to/imagenet/val/ILSVRC2012_val_00000001.JPEG
2.?進行一些預處理操作:
??????cd $CAFFE_ROOT/data/ilsvrc12/


????./get_ilsvrc_aux.sh


3.訓練數據和測試數據分別放在train.txtval.txt中,里面有他們的文件和相對應的標簽;
4.?最后作者把1000類的類名用0--999表示,他們相對應的類別名稱則用synset_words.txt?來存儲他們之間的映射。


5.作者提到怎么去是否應該先把圖像都歸一化到256*256中,作者提到用Mapreduce去加快這種過程;


也可以直接這么做:
for name in /path/to/imagenet/val/*.JPEG; do


???convert -resize 256x256\! $name $name


Done


6.在 create_imagenet.sh中設置訓練的參數,并在里面指定訓練和測試的數據庫路徑,如果圖像沒有提前歸一化到相同的大小,則需要加”RESIZE=true“,設置”GLOG_logtostderr=1?表示了可以參考更多的信息,
????在執行 ./create_imagenet.sh?之后會有新的數據文件生成:
??????ilsvrc12_train_leveldb?????ilsvrc12_val_leveldb?
7.?因為模型需要我們減去圖像的均值,所以我們需要計算圖像均值,在工具
?????tools/compute_image_mean.cpp??實現了這種操作,


???或者可以直接用:
????./make_imagenet_mean.sh??腳本來進行計算圖像均值,并生成:
????data/ilsvrc12/imagenet_mean.binaryproto?文件


8.定義網絡的結構:imagenet_train_val.prototxt .
???里面有兩行指定了數據庫和圖像的路徑
???source: "ilvsrc12_train_leveldb"


??mean_file:"../../data/ilsvrc12/imagenet_mean.binaryproto"
???并且指定了 include { phase: TRAIN }?or?include { phase: TEST } .來區分訓練和測試


9.關于輸入層的不同:
???訓練數據中,,data項來自 ilsvrc12_train_leveldb??并且進行了隨機鏡像操作,測試數據中data項來自于ilsvrc12_val_leveldb 而沒有進行隨機鏡像操作;


10.輸出層的不同:
???輸出層都為 softmax_loss?層,在訓練網絡當中,用來計算損失函數,并且用來初始化BP過程,測試網絡同樣有一個第二個輸出層,accuracy,它用來報告測試的精度,在訓練的過程中,測試網絡將實例化并且測試準確率,產成的命令行為:Test score #0: xxx??and??Test score #1: xxx?等。


11.運行網絡,其中設置
????每批batch256個,運行450000次迭代,接近90epoch
???1000次迭代,就在用測試集進行測試;
???設置初始的學習率為0.01,并且每100000次迭代中進行學習率下降,大概進行20epoch
???20epoch就顯示出一些數據信息;
???網絡訓練的動量為0.9,權重衰減因子為0.0005
???10000次迭代中,就生成當前狀態的快照;
???這些設置在 examples/imagenet/imagenet_solver.prototxt .中進行設置,并且同樣我們需要指定文件的路徑:
???net: "imagenet_train_val.prototxt"


12.開始訓練網絡:
???./train_imagenet.sh
13.?K20中,每20個迭代花費36s,所以,一幅圖像的一次前饋+反饋(FW+BW)大概需要7ms,前饋花費2.5ms,剩下的是反饋,
???可以在 examples/net_speed_benchmark.cpp?中進行時間的查看;


14.因為我們有保存了快照,所以我們可以通過
????./resume_training.sh?來進行resume恢復,腳本caffe_imagenet_train_1000.solverstate??保留了要恢復的所有信息,
15.總結,Caffe可以很方便進行通過設置文件的方式來進行設置不同的網絡結構。

總結

以上是生活随笔為你收集整理的Caffe实践】如何利用Caffe训练ImageNet分类网络的全部內容,希望文章能夠幫你解決所遇到的問題。

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