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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Windows环境下使用 Caffe在ImageNet上训练网络

發(fā)布時(shí)間:2024/4/13 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows环境下使用 Caffe在ImageNet上训练网络 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在配置好Windows版的Caffe之后,可以使用Windows Caffe訓(xùn)練ImageNet網(wǎng)絡(luò),主要有4個(gè)步驟:

(1)準(zhǔn)備圖片數(shù)據(jù)庫(kù)

(2)將圖片數(shù)據(jù)轉(zhuǎn)換為Caffe可以使用的LMDB或者LevelDB類型

(3)取數(shù)據(jù)庫(kù)均值

(4)開(kāi)始用Caffe訓(xùn)練網(wǎng)絡(luò)

1 準(zhǔn)備圖片數(shù)據(jù)庫(kù)

可以從網(wǎng)上找到ImageNet的數(shù)據(jù),選擇幾個(gè)圖片類別下載下來(lái)。我是從ilsvrc2012的數(shù)據(jù)中找了幾個(gè)類別。我找到的數(shù)據(jù)庫(kù)是這樣的:


上面每個(gè)文件中都是如下的一堆圖片:


任意選擇幾個(gè)類別作為訓(xùn)練數(shù)據(jù)。我選了如下的三類。每個(gè)類別中有1300張圖片,在每個(gè)類別中抽取100張圖片作為驗(yàn)證集,余下的1200張作為訓(xùn)練集。將訓(xùn)練集和驗(yàn)證集存儲(chǔ)在相應(yīng)的路徑下。



運(yùn)行如下兩個(gè)matlab腳本(腳本來(lái)自“http://blog.csdn.net/u013657981/article/details/49497753”),可以生成制作數(shù)據(jù)庫(kù)所需要的train.txt和val.txt。

clear all clc foodDir='F:\caffe-windows\data\ilsvrc12\train'; numClasses=3 classes=dir(foodDir) classes = classes([classes.isdir]) ; classes = {classes(3:numClasses+2).name} imageName={}; fp = fopen('train.txt','a'); for ci = 1:length(classes)ims = dir(fullfile(foodDir, classes{ci}, '*.JPEG')) for ii=1:length(ims)fprintf(fp,classes{ci});fprintf(fp,'/');fprintf(fp,ims(ii).name);fprintf(fp,' ');fprintf(fp,'%d',ci);fprintf(fp,'\r\n');end end fclose(fp);


clear all clc foodDir='F:\caffe-windows\data\ilsvrc12\val'; numClasses=3 classes=dir(foodDir) classes = classes([classes.isdir]) ; classes = {classes(3:numClasses+2).name} imageName={}; fp = fopen('val.txt','a'); for ci = 1:length(classes)ims = dir(fullfile(foodDir, classes{ci}, '*.JPEG')) for ii=1:length(ims)fprintf(fp,classes{ci});fprintf(fp,'/');fprintf(fp,ims(ii).name);fprintf(fp,' ');fprintf(fp,'%d',ci);fprintf(fp,'\r\n');end end fclose(fp);

然后把生成的train.txt和val.txt拷貝到合適的路徑下以備使用(我是把它們拷貝到了F:\caffe-windows\data\ilsvrc12 路徑下)。兩個(gè)文件內(nèi)容如下所示。




2 生成數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)可以選擇LMDB或者LevelDB兩種類型。

使用如下批處理命令,可以實(shí)現(xiàn)訓(xùn)練集的轉(zhuǎn)化,生成LMDB數(shù)據(jù)庫(kù)。

F:\caffe-windows\Build\x64\Release\convert_imageset.exe --resize_height=256 --resize_width=256 --shuffle --backend="lmdb" F:\caffe-windows\data\ilsvrc12\train\ F:\caffe-windows\data\ilsvrc12\train.txt F:\caffe-windows\examples\imagenet\ilsvrc12_train_lmdb Pause

在使用如下命令,可以實(shí)現(xiàn)驗(yàn)證集的數(shù)據(jù)庫(kù)轉(zhuǎn)化。

F:\caffe-windows\Build\x64\Release\convert_imageset.exe --resize_height=256 --resize_width=256 --shuffle --backend="lmdb" F:\caffe-windows\data\ilsvrc12\val\ F:\caffe-windows\data\ilsvrc12\val.txt F:\caffe-windows\examples\imagenet\ilsvrc12_val_lmdb Pause


3 數(shù)據(jù)庫(kù)均值

F:\caffe-windows\Build\x64\Release\compute_image_mean.exe --backend="lmdb" F:\caffe-windows\examples\imagenet\ilsvrc12_train_lmdb F:\caffe-windows\examples\imagenet\train_mean.binaryproto Pause


4 訓(xùn)練網(wǎng)絡(luò)

我們采用的是caffe自帶的一些網(wǎng)絡(luò),一些參數(shù)如下,有些我們可以根據(jù)自己的需要修改。比如,我將最大迭代次數(shù)改為了30000。“train_val.prototxt”文件位于F:\caffe-windows\models\bvlc_alexnet 路徑中我的caffe的根目錄是F:\caffe-windows)。


在同一個(gè)目錄下還有文件“solver.prototxt”。網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)中,要把數(shù)據(jù)庫(kù)文件和均值文件路徑寫對(duì)。用了相對(duì)路徑的地方,默認(rèn)是從caffe的根目錄執(zhí)行。



由于上面文件中有的參數(shù)使用了相對(duì)路徑,所以我們需要打開(kāi)Windows命令行窗口,cd到caffe的根目錄,執(zhí)行以下命令:

F:\caffe-windows\Build\x64\Release\caffe.exe train --solver=F:\caffe-windows\models\bvlc_alexnet\solver.prototxt pause

或者把它寫到一個(gè)批處理文件中,在caffe根目錄下執(zhí)行該文件。運(yùn)行中截圖如下:


運(yùn)行完成后截圖如下。在使用了GPU的前提下,我的電腦總共花了2個(gè)半小時(shí)來(lái)完成這個(gè)任務(wù)。




轉(zhuǎn)載于:https://www.cnblogs.com/yanhuiqingkong/p/7770057.html

總結(jié)

以上是生活随笔為你收集整理的Windows环境下使用 Caffe在ImageNet上训练网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。