下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、caffe 的 Matlab 接口的使用方法編譯 MatCaffe 使用如下命令編譯 MatCaffe 1 make allmatcaffe 之后,你可以用以下命令測(cè)試 MatCaffe :1 make mattest如果你在運(yùn)行上面命令時(shí),遇到如下錯(cuò)誤: libstdc+.so.6 versionGLIBCXX_3.4.15 not found ,說(shuō)明你的 Matlab 庫(kù) 不匹配。你需要在啟動(dòng) Matlab 之前運(yùn)行如下命令: 1 exportLD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:/usr/local/cuda/lib642 exportLD
2、_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc+.so.6 在 Caffe根目錄啟動(dòng) Matlab 之后需要增加路徑: 1 addpath ./matlab 你可以使用 savepath 來(lái)保存 Matlab 搜索路徑,這樣下次就不 用再添加路徑了。使用 MatCaffe MatCaffe 和 PyCaffe 的使用方法很相似。面將用一個(gè)例子來(lái)解釋 MatCaffe 的具體使用細(xì)節(jié), 假設(shè)你已經(jīng)下載了 BVLC CaffeNet ,并且在 caffe 根目錄啟動(dòng) matlab1 model = ./models/bvlc_reference_caffene
3、t/totxt;2weights =./models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel;1. 設(shè)置模式和設(shè)備模式和設(shè)備的設(shè)置必須在創(chuàng)建一個(gè) net 或 solver 之前。使用 CPU :1 caffe.set_mode_cpu();使用 GPU 并指定 gpu_id :1 caffe.set_mode_gpu();2 caffe.set_device(gpu_id);2. 創(chuàng)建一個(gè)網(wǎng)絡(luò)并訪問(wèn)它的 layers 和 blobs1. 創(chuàng)建網(wǎng)絡(luò)創(chuàng)建一個(gè)網(wǎng)絡(luò):1 net = caffe.Net(m
4、odel, weights, test); % create net and loadweights 或者1 net = caffe.Net(model, test); % create net but not load weights2net.copy_from(weights); % load weights 它可以創(chuàng)建一個(gè)如下的net 對(duì)象:Net with properties: layer_vec: 1x23blob_vec: 1x15 caffe.Blobinputs: data outputs: prob name2layer_index: 23x1containers.Map
5、name2blob_index: 15x1 containers.Maplayer_names: 23x1 cell blob_names: 15x1 cell 兩個(gè)containers.Map 對(duì)象可以通過(guò) layer 或者 blob 的名稱找 到對(duì)應(yīng)的索引。caffe.Layer2. 訪問(wèn) blob你可以訪問(wèn)網(wǎng)絡(luò)中的每一個(gè) blob ,將 data 的 blob 填充為全net.blobs(data).set_data(ones(net.blobs(data).shape);將 data 的 blob 中數(shù)值全部乘以 10 :net.blobs(data).set_data(net.blo
6、bs(data).get_data() * 10); 注意:因?yàn)?Matlab 是以 1 作為起始單元,且以列為主,在 Matlab 中使用四維 blob 為 width, height, channels, num ,且 width 是最快的維度,而且要在 BGR 通道。而且 Caffe 使用 單精度浮點(diǎn)型數(shù)據(jù)。如果你的數(shù)據(jù)不是浮點(diǎn)型的, set_data 將會(huì)自動(dòng)轉(zhuǎn)換為 single 。3. 訪問(wèn) layer 你也可以訪問(wèn)網(wǎng)絡(luò)的每一層, 以便你作一些網(wǎng)絡(luò)調(diào)整。例如 把 conv1 參數(shù)乘以 10: net.params(conv1,1).set_data(net.params(conv1,
7、 1).get_data()* 10); % set weightsnet.params(conv1,2).set_data(net.params(conv1, 2).get_data() * 10); % set bias 你也可以如下代碼:net.layers(conv1).params(1).set_data(net.layers(conv1).params(1).get_data() *10);net.layers(conv1).params(2).set_data(net.layers(conv1).params(2).get_data() * 10);4. 保存網(wǎng)絡(luò) 你僅僅需要如下
8、代碼保存網(wǎng)絡(luò):net.save(my_net.caffemodel);5. 獲得一層的類型 (string)layer_type = net.layers(conv1).type;3. 前向和后向計(jì)算前向和后向計(jì)算可以使用 net.forward 或者 net.forward_prefilled 實(shí)現(xiàn)。函數(shù) net.forward 將一個(gè)包含輸入 blob(s)的 cell 數(shù)組作為輸入,并輸出一個(gè)包含輸出blob(s)的cell 數(shù)組。函數(shù) net.forward_prefilled 將使用輸入 blob(s)中的 已有數(shù)據(jù)進(jìn)行計(jì)算,沒(méi)有輸入數(shù)據(jù),沒(méi)有輸出數(shù)據(jù)。在通過(guò)一些方法(如: data
9、 = rand(net.blobs(data).shape);)產(chǎn) 生輸入數(shù)據(jù)后,你可以運(yùn)行:res = net.forward(data);prob = res1;或者net.blobs(data).set_data(data);net.forward_prefilled();prob =net.blobs(prob).get_data();后向計(jì)算使用 net.backward 或者 net.backward_prefilled ,并且 把get_data 和 set_data 替換為 get_diff 和 set_diff。在通過(guò)一 些方法(例如 prob_diff = rand(net
10、.blobs(prob).shape); )產(chǎn)生 輸出blobs 的梯度后,你可以運(yùn)行:res = net.backward(prob_diff);data_diff = res1;或者net.blobs(prob).set_diff(prob_diff);net.backward_prefilled();data_diff = net.blobs(data).get_diff();然而,如上的后向計(jì)算并不能得到正確的結(jié)果,因?yàn)?Caffe 默認(rèn)網(wǎng)絡(luò)不需要后向計(jì)算。為了獲取正確的后向計(jì)算結(jié)果, 你需要在你的網(wǎng)絡(luò) prototxt 文件中設(shè)置 force_backward: true 在完成前向
11、和后向計(jì)算之后,你可以獲得中間 blobs 的 data 和 diff 。例如,你可以在前向計(jì)算后獲取 pool5 的特征。4. Reshape假設(shè)你想要運(yùn)行 1 幅圖像,而不是 10 幅時(shí):net.blobs(data).reshape(227 227 3 1); % reshape blobdatanet.reshape();然后,整個(gè)網(wǎng)絡(luò)就 reshape 了,此時(shí) net.blobs(prob).shape 應(yīng) 該是1000 1;5. 訓(xùn)練網(wǎng)絡(luò)假設(shè)你按照 ImageNET Tutorial 的方法創(chuàng)建了訓(xùn)練 lmdb 和驗(yàn) 證lmdb ,產(chǎn)生一個(gè) solver 并且在 ILSVRC 2
12、012 分類數(shù)據(jù)集 上訓(xùn)練:solver =caffe.Solver(./models/bvlc_reference_caffenet/totxt); 這樣可以創(chuàng)建一個(gè) solver 對(duì)象:Solver with properties:net: 1x1 caffe.Nettest_nets: 1x1 caffe.Net訓(xùn)練代碼: solver.solve();如果只想訓(xùn)練迭代 1000 次: solver.step(1000);來(lái)獲取迭代數(shù)量: iter = solver.iter();來(lái)獲取這個(gè)網(wǎng)絡(luò):train_net = ;test_net = solver.test_
13、nets(1); 假設(shè)從一個(gè)snapshot 中恢復(fù)網(wǎng)絡(luò)訓(xùn)練:solver.restore(your_snapshot.solverstate);6. 輸入和輸出caffe.io 類提供了基本的輸入函數(shù) load_image 和 read_mean。 例如,讀取 ILSVRC 2012 mean 文件(假設(shè)你已經(jīng)通過(guò)運(yùn)行 ./data/ilsvrc12/get_ilsvrc_aux.sh 下載 imagenet 例程輔助文 件)mean_data=caffe.io.read_mean(./data/ilsvrc12/imagenet_mean.binaryproto)為了讀取 Caffe 例程
14、圖片,并且 resize 到 width, height ,且 假設(shè) width = 256; height = 256;im_data =caffe.io.load_image(./examples/images/cat.jpg);im_data =imresize(im_data, width, height); % resize using Matlabs imresize注意:width 是最快的維度,通道為BGR,與 Matlab 存取圖片的一般方式不一樣。如果你不想要使用caffe.iooad_image,且想自己導(dǎo)入一幅圖片:im_data = imread(./examples/images/cat.jpg); % readimageim_data = im_data(:, :, 3, 2, 1); % convert from RGB toBGRim_data = permute(im_data, 2, 1, 3); % permute width andheightim_data = single(im_data); % convert to single precision你也可以看一下 caffe/mat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 涼山2025年四川涼山會(huì)理市招聘“一村一幼”輔導(dǎo)員56人筆試歷年參考題庫(kù)附帶答案詳解
- 職業(yè)人群健康權(quán)益保障的傳播策略
- 企業(yè)消防安全三級(jí)檢查制度
- 耐藥治療的臨床決策支持系統(tǒng)應(yīng)用
- 衛(wèi)生計(jì)生服務(wù)室制度
- 衛(wèi)生院藥事委員會(huì)制度
- 四個(gè)一體醫(yī)療衛(wèi)生制度
- 京東集團(tuán)薪酬管理手冊(cè)制度
- 耐藥性逆轉(zhuǎn)策略在臨床實(shí)踐中的應(yīng)用
- 2025-2026學(xué)年河北省邢臺(tái)市七校高三上學(xué)期期中考試語(yǔ)文試題(解析版)
- 2026年湖南郴州市百福控股集團(tuán)有限公司招聘9人筆試參考題庫(kù)及答案解析
- 屋面防水施工質(zhì)量保證措施
- 2026年認(rèn)證網(wǎng)約車考試題庫(kù)及完整答案一套
- 社區(qū)環(huán)境資源與健康行為可及性
- 2026年廣州市自來(lái)水公司招考專業(yè)技術(shù)人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 代謝綜合征診療指南(2025年版)
- 散文系列《補(bǔ)鞋子的人》精-品解讀
- 安徽省合肥一中2025-2026學(xué)年高三上學(xué)期1月考試化學(xué)(含答案)
- 2025國(guó)開(kāi)本科《公共部門人力資源管理》期末歷年真題(含答案)
- 河北省唐山市2024-2025學(xué)年高一上學(xué)期期末數(shù)學(xué)試題(含答案)
- 新課標(biāo)解讀培訓(xùn)
評(píng)論
0/150
提交評(píng)論