matlab怎么安装matconvnet

matlab怎么安装matconvnet,第1张

1.去官网下载cuda cudnn matconvnet。都很容易下到。

我的MATLAB 版本是2014a,其他是 cuda v7.5,cudnn v5.1,以及matconvnet-1.0-beta22

2.将下好的matconvnet-1.0-beta22 重命名为 MatConvNet ,cudnn 解压后文件重命名为 cudnn-v5.1

3.打开MATLAB,首先更改路径,改到 MatConvNet 文件夹下。在命令行窗口输入 mex -setup ,根据提示来关联VS。

4.接着输入 vl_compilenn

5.接着输入 run matlab/vl_setupnn

6.此时可以用 vl_testnn 测试,由于下载文件较大,也可跳过此步。

%读图像

img=imread('D:\我的文档\桌面\10096009_0762641.JPG')

subplot(121),imshow(img)

%将RGB分量转换成HSI,具体见:http://zhidao.baidu.com/question/320254032.html

img_hsi=rgb2hsi(img)

%--------------------------------------------------------------------------

%ln和DFT处理过程

% img_s=fftshift(fft2(log(img_hsi(:,:,2))))

img_s=log(img_hsi(:,:,2))

img_s=img_hsi(:,:,2)

%H 巴特沃斯高通滤波器处理过程

f=double(img_s)

g=fft2(f)

g=fftshift(g)

[M,N]=size(g)

nn=5% 2-grade Butterworth highpass filter

d0=15% 15,30,80其中以15为例

m=fix(M/2)n=fix(N/2)

for i=1:M

for j=1:N

d=sqrt((i-m)^2+(j-n)^2)

h=1/(1+0.414*(d/d0)^(2*nn))% filter transform function

%h=1./(1+(d./d0).^(2*n))

%h=exp(-(d.^2)./(2*(d0^2)))

result(i,j)=(1-h)*g(i,j)

end

end

result=ifftshift(result)

J1=ifft2(result)

img_s2=uint8(real(J1))

%--------------------------------------------------------------------------

% img_i=fftshift(fft2(log(img_hsi(:,:,3))))

img_i=log(img_hsi(:,:,3))

img_i=img_hsi(:,:,3)

%高斯滤波器

%将S分量的二维不连续Frourier变换的零频率成分移到频谱的中心

s=fftshift(fft2(img_i))

[M,N]=size(s)%分别返回s的行数到M中,列数到N中

n=2 %对n赋初值

%GLPF滤波,d0=5,15,30(程序中以d0=30为例)

d0=30 %初始化d0

n1=floor(M/2)n2=floor(N/2)

for i=1:M

for j=1:N

d=sqrt((i-n1)^2+(j-n2)^2)%点(i,j)到傅立叶变换中心的距离

h=1*exp(-1/2*(d^2/d0^2)) %GLPF滤波函数

s(i,j)=h*s(i,j) %GLPF滤波后的频域表示

end

end

img_i2=ifft2(ifftshift(s))img_i2=exp(img_i2)img_i2=uint8(real(img_i2))

%--------------------------------------------------------------------------

newImg(:,:,1)=img(:,:,1)newImg(:,:,2)=img_s2newImg(:,:,3)=img_i2

subplot(122),imshow(newImg)

一、准备

需要用到的东西我已经帮大家全部准备好了,有2016年2月4日刚刚从caffe官方master分支fork过来的源代码。有我自己亲手制作的第三方库,在源码的根目录下建立个3rdparty文件夹,把文件解压进去就可以了。

解压好之后,要将3rdparty/bin文件夹添加到环境变量的PATH中,这样才能让程序找到这些第三方库的dll。

最后是CUDA和MKL了,MKL是可选的,大家可以去Intel官方申请,如果不用cpu模式的话其实也无所谓,在第三方库包中我还提供了openblas的库文件。

我使用的是CUDA 7.5版,建议大家也安装这个版本。

二、编译

编译非常简单,分为以下几步:

1、双击./src/caffe/proto/extract_proto.bat批处理文件来生成caffe.pb.h和caffe.pb.cc两个c++文件,和caffe_pb2.py这个Python使用的文件。

2、打开./buildVS2013/MainBuilder.sln,打开之后切换编译模式至Release X64模式。如果打开之后显示加载失败,可能你的CUDA版本和我的不一致,我的是CUDA 7.5版,这时就要用记事本打开./buildVS2013目录下各个文件夹内的.vcxproj文件,搜索CUDA 7.5,把这个7.5换成你自己的CUDA版本,就可以正常打开了。

另外,如果你的显卡比较老或者没有显卡,请使用./build_cpu_only/MainBuilder.sln。

3、点上边工具栏中的绿色三角编译吧。编译大概需要半小时左右,请耐心等待。

如果要用matlab wrapper来提取特征、观察训练好的权重的话呢,只需要把matcaffe项目里面的matlab目录修改成你自己的,然后编译,你就能从matlab/+caffe/private文件夹里面找到一个叫caffe_.mexw64的文件啦。

python的wrapper类似,把pycaffe项目里的python目录改成你自己的(我用的是Anaconda),就能在python/caffe文件夹中生成_caffe.pyd的python dll文件。

三、测试

到 下载已经转换好的MNIST的leveldb数据文件,解压至./examples/mnist文件夹中,然后运行根目录下的run_mnist.bat即可开始训练,训练日志会保存在./log文件夹中,以INFO开头,txt格式的日志文件中。

ps:如果你编译成功的话,不要忘了给我的github工程点个star!

四、旧更新日志

2015/02/25 微软制作了一个caffe的windows版,他们更加专业,做出来的solution更加容易维护,第三方库完全由Nuget进行管理,几乎不用配置什么东西

2015/12/09 我总结了一下比较常见的问题,写在 里,而且未来会持续更新,如果碰到问题请先查看这个FAQ列表。

2015/09/14 Caffe现在支持单机多GPU啦,直接在caffe命令后面加--gpu=all或--gpu=0,1 即可使用多个GPU进行训练。

如果使用多gpu训练,不要直接点cmd窗口的X,最好使用Ctrl+C来终止程序,不然显卡驱动有时候会崩溃。

还有如果要在训练中途存一个snapshot,可以用Ctrl+Break。

因此一个正常的终止训练的 *** 作是:

先Ctrl+Break保存当前工作状态,然后Ctrl+C终止训练。

2015/08/18 lmdb现在已经可以使用了,不过磁盘必须是NTFS格式的才可以。有需要的请到下载,并覆盖掉3rdparty/lib 中同名的文件,然后右键各个工程->仅用于项目->仅链接 即可,无需重新生成。

2015/08/08 有很多人报告(包括我自己)cuDNN v3 的速度比v2慢很多,因此master分支被我回滚回v2版本了,所幸cuDNN向下兼容,所以无需再次下载第三方库。

2015/08/06 新版caffe-windows上线了,由于vs2012编译速度太慢,从这个版本开始,不再对vs2012提供支持。

2015/07/07 现在caffe也支持VS2013了,第三方库全部更新至最新版本。请从下载并替换掉原有的build文件夹,其他步骤与先前版本一致。如果发现bug,烦请反馈给我,留言或在github上提issue均可。

2015/06/07 添加Insanity Layer(即randomized leaky rectified linear units),我也不知道为什么叫Insanity。。论文上说效果比PReLU还好些。

2015/06/05 将Caffe版本更新至6月5日的master分支,与上一版最大的不同在于matlab接口更加丰富,cudnn更新至v2版,所以要重新下载第三方库。

2015/06/05 Batch Normalization更新至新版,现在的默认mnist测试文件即为使用了Batch Normalization层的版本。

2015/05/29 发现上个版本的lmdb.lib使用了别人在vs2013下编译的版本,现改为vs2012版;

2015/05/29 添加了提取任意层特征的matlab接口,使用方法:

OUTPUT = caffe('get_features', INPUT, 'layername1,layername2...')11

例如:f = caffe('get_features', H, 'conv51,pool5')返回的f为2*1的cell类型,里面记录了层的名称和该层的特征。

现在有了更好的方法来获得每层特征,该函数不再更新。请参见新版matlab接口。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12134354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存