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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

caffe.net matlab,【caffe-Windows】微软官方caffe之 matlab接口配置

發布時間:2024/1/8 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 caffe.net matlab,【caffe-Windows】微软官方caffe之 matlab接口配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

按照微軟的官方地址配置可能會出現一個問題caffe_.mexw64找不到引用模塊問題,或者在matlab里面壓根找不到caffe_這個函數,下面會提到這兩個問題。還是按照步驟來吧

【PS1】有GPU同樣按照下述步驟,進行即可

【PS2】文章在matlab2013a、matlab2014a、matlab2015b、matlab2016a、matlab2018a中配置成功,但是在高版本或者更低版本情況下可能會出現問題

matlab2015b下載地址:鏈接:http://pan.baidu.com/s/1hsmlNeO 密碼:o1fu

【注】比較建議安裝matlab2015b和VS2013,因為如果涉及到混合編程,MATLAB2012之類的可能無法選擇VS2013的編譯器。

第一步

修改配置文件,使之支持matlab接口,修改兩個地方,第一個是matlabsupport,第二個是matlabdir也就是你的matlab安裝目錄(對matlab桌面圖標右鍵屬性查看):

【PS】最近Microsoft 的github貌似更新了matcaffe中的caffe_.cpp文件,第十六行添加了對gpu/mxGPUArray.h的引用,可以在此步驟的IncludePath中添加MatlabDir,如下所示:

C:\Program Files\MATLAB\R2013a

$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)

$(MatlabDir);$(MatlabDir)\extern\include;$(IncludePath)

然后修改matcaffe中的第十六行#include"gpu/mxGPUArray.h"中修改為

#include

第二步

編譯caffe文件夾里面的Windows里面的caffe.sln工程里面的matcaffe一項

【注】此時先選擇release選項吧,別用debug了

第三步

使用release編譯以后,在\Build\x64\Release下會生成一個matcaffe文件夾,重點要有下面畫框的文件。

第四步

【此步是按照微軟官方配置方法】這一步不會安裝成功,不想看到這種出錯情況不要直接跳入第五步,先通讀一下第四步,然后除了路徑和環境變量不用加,其余的該拷貝還是得拷貝~~~

首先將上一步生成的matcaffe加入matlab的路徑中,直接在setpath里面設置

然后將release(如果你的caffe.sln是在Debug下生成的,就把Release換成Debug)加入系統變量path【手動copy進去就行了,我這里沒加,因為我測試了一下貌似沒啥效果,你們可以試試可以成功不】,加環境變量后記得重啟一下

【更新日志】在2016.10.18編譯matlab2015b的接口,發現這一步還是必須的,詳細看第五步。

最后運行這個demo

遇到的就是我說的找不到caffe_的問題了

接下來我把這個\Build\x64\Release\matcaffe\+caffe\private這個文件夾里面的東西全都拷貝到\matlab\+caffe\private覆蓋,然后遇到下面問題

第五步

暴力解決它,把\Build\x64\Debug下的所有的鏈接文件也就是dll文件也拷貝到這個文件夾去,原文件在這里

拷貝到\matlab\+caffe\private以后是這樣

【更新日志】在2016.10.18試了一下matlab 2015b,結果還是出現了

Invalid MEX-file 'E:\caffe-2015b\caffe-windows\matlab\+caffe\private\caffe_.mexw64': 找不到指

定的程序。

出錯 caffe.set_mode_cpu (line 5)

caffe_('set_mode_cpu');

出錯 classification_demo (line 70)

caffe.set_mode_cpu();

然后試了許久才發現,還是需要在第四步中加入對應的matcaffe根目錄,比如我在編譯matlab2015b的caffe接口的時候使用了Debug模式(即生成的matcaffe存在于Debug目錄下),那么我在環境變量中還是得添加E:\caffe-2015b\caffe-windows\Build\x64\Debug;,然后才解決了這個問題,比較奇怪的是,竟然在matlab2013a和matlab2015b下都能使用matlab/demo/classification.m了。不過解決了就是好事嘛~~

【更新日志】在2016.12.26網友測試了matlab2016a,加上已知評論區的朋友,已知在matlab2016下配置成功了三臺機器

按照matlab2015b的配置完畢以后,會出現

錯誤使用 CHECK (line 4)

invalid Net handle

出錯 caffe.Net (line 38)

CHECK(is_valid_handle(hNet_net), 'invalid Net handle');

出錯 caffe.get_net (line 28)

net = caffe.Net(hNet);

出錯 caffe.Net (line 33)

self = caffe.get_net(varargin{:});

出錯 classification_demo (line 84)

net = caffe.Net(net_model, net_weights, phase);

按照評論區網友@zhaocaoou1435的方法“這個問題可以通過在matlab里,把\caffe-master\matlab\+caffe\private文件夾點開,再重新運行就可以了”。

哈哈,感覺這種解決辦法好奇怪,原理暫時未知。

第六步

下載一下model文件放到caffe-master\models\bvlc_reference_caffenet文件夾下

下載地址 ?鏈接:http://pan.baidu.com/s/1geUv01l 密碼:yp9p

標簽文件如下

synset_words.txt地址:

鏈接:https://pan.baidu.com/s/1_cciKtw_a7Njyyn4Dm127g 密碼:zzzg

測試一下效果,建立一個test.m測試文件,路徑如下【忽視readlabel,我自己寫的讀文件,最后放到test.m里面了】

【最好在matlab里面加一下路徑】

代碼如下:

%參考http://www.aichengxu.com/view/2422137

clear

clc

im = imread('../../examples/images/cat.jpg');%讀取圖片

figure;imshow(im);%顯示圖片

[scores, maxlabel] = classification_demo(im, 0);%獲取得分第二個參數0為CPU,1為GPU

maxlabel %查看最大標簽是誰

figure;plot(scores);%畫出得分情況

axis([0, 999, -0.1, 0.5]);%坐標軸范圍

grid on %有網格

fid = fopen('synset_words.txt', 'r');

i=0;

while ~feof(fid)

i=i+1;

lin = fgetl(fid);

lin = strtrim(lin);

if(i==maxlabel)

fprintf('the label of %d is %s\n',i,lin)

break

end

end

運行之,效果

本文同步分享在 博客“風翼冰舟”(CSDN)。

如有侵權,請聯系 support@oschina.cn 刪除。

本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

總結

以上是生活随笔為你收集整理的caffe.net matlab,【caffe-Windows】微软官方caffe之 matlab接口配置的全部內容,希望文章能夠幫你解決所遇到的問題。

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