matconvnet简介安装与使用
来源:互联网 发布:微信点赞软件免费 编辑:程序博客网 时间:2024/05/16 10:55
转自博客:http://blog.csdn.net/on2way/article/details/52959102
十个值得一试的开源深度学习框架
各类框架自己去选择吧,这里想说一下的是其中一个用于研究领域较多的一个框架Matconvnet,这个框架是基于matlab写的,matlab懂得,研究用的,方便简单。
首先贴一下
Matconvnet的主页
(众多说明教程都可以去里面找到)
点进去就可以下载安装包了。
下载完解压到一个路径,接着就到安装这一步了。
安装之前确认需要安装:
(1)vs安装;
(2)需要用GPU加速的还需要安装cuda;
紧接着用Matlab打开到这个解压路径,安装。步骤就不重复了,贴上网络资源:
MatConvNet教程—– Win7下编译和配置详解
ok上述两个介绍的很详细了,关于编译cpu版本还是GPU版本都有说到,编译完以后,理论上没问题应该是在安装目录下的mex下,多出一系列的.mexw64 编译文件,(64位系统),如果没有就证明没有编译成功。
我编译的时候提示有几个函数一直重名,不知道为什么,后来我改了几个函数的名字就可以了,像下面这样,也不知道为什么,如果没有这个错误的同学,自动略过吧:
Ok假设都编译完了,如果有的人电脑实在各种问题编译不出来,我把我编译的cpu与Gpu版本都的放一下:
Matconvnet cpu版本 (64位系统)
Matconvnet gpu版本 (cuda7.5编译64位系统)
先来看看如何用训练好的imagenet网络模型进行图像的预测,英文版的官网教程就在这里:
http://www.vlfeat.org/matconvnet/quick/
检测图像分类之前,首先需要训练好的模型,官网也提供了各式各样的网络模型,下载如下:
http://www.vlfeat.org/matconvnet/pretrained/
这里可以看到一堆的模型,我们先下载一个“imagenet-vgg-f ”试一下,
就放在安装包文件夹外面
好了,将matconvnet整个文件夹添加到路径(假设已经编译好了)。
在这个目录下建一个m函数,输入下面代码,运行就可以了:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
最高得分0.704,结果为辣椒。还可以。
MatConvNet中mnist源码解析
可以自己去看代码,就不解释了。这里假设代码看懂了,那么我抽象出来这个模型结构就像下面这样:
可以这个模型的结构依次为:输入-卷积1-pool1-卷积2-pool2-卷积2-relu-卷积4(也可以是全连接层)-sofrmax分类。
根据代码中的结构定义,我们也可以推算出每一层的输出大小(上述图)。
这里需要注意的是,这个网络层的设计大小一定要吻合。比如,经过一系列的卷积pool后,到全连接层时,输入一定要是1*1*X*X,且上一层的map,和下一层的卷积数map一定要一样。比如输入为28*28*1,那么第一个卷积核是5*5*1*20,这个1就是上一层的只有一个图。再往下走卷积为5*5*20*50,这里为什么是20,因为上一层的map有20个。一次类推,计算到最后正好为1*1*500,这样才可以全连接层。如果你自己设计网络,自己计算一下一定要保证后面全连接层时输入为1*1*X*X,否则会训练错误。
Ok,这里说到这,下面在更直观看下网上别人分享的一个网络(当然输入大小错了,中间大小也错了,但是结构类似)
好了,模型训练完了,那么怎么测试呢?
这个数据集本身也分了训练集与测试集,下面我们来测试一下测试集的准确率。建一个m脚本,函数如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
解释一下,中间有一块需要改变最后一层的名字变为softmax,这样才是测试用的。
测试样本可以看到为10000,这样运行一下结果如下:
accurcy = 96.97%
可见准确率还是挺高的。在这个序列的前几篇,曾经也用另外一个深度学习工具箱做过mnist的实验(感兴趣可以去看)
深度学习系列(八):自编码网络多层特征学习
在那里用的是自编码以及pca等方法,都不能得到像现在这样的准确率。
进一步索引对网上大牛对Matconvnet中一些函数的详细解释:
MatConvNet 庖丁解牛
注释详细至极,同时这个网站的众多好资源,表示感谢。
最后分享一个网上将这个代码转变为c++代码的测试方法,觉得很好。
C++使用matlab卷积神经网络库MatConvNet来进行手写数字识别
- matconvnet简介安装与使用
- matconvnet 安装与使用
- 深度学习(十一):Matconvnet简介与安装
- Matconvnet 的安装以及使用
- MatConvNet安装
- MinGW安装与使用简介
- MinGW安装与使用简介
- Maven简介、安装与使用
- MinGW安装与使用简介
- MinGW安装与使用简介
- LibPcap安装与使用简介
- lombok安装与使用简介
- Zookeeper简介、安装与使用
- Helm简介,安装与使用
- lombok安装与使用简介
- lombok安装与使用简介
- lombok安装与使用简介
- Caffe和MatConvNet安装
- 剑指offer
- 顺序栈基本运算
- 单例模式
- 项俊平:深度强化学习的交通信号优化控制浅析
- jsp 输入字数限制
- matconvnet简介安装与使用
- JavaScript:void(0)
- python文件过滤,去重,排序
- 远程部署publish over ssh
- 12年技术老兵和你谈谈如何追求个人价值
- 一个重要的日子
- iptables防火墙
- FZU 1627
- Tomcat安装-多实例