深度学习 Deep Learning with MATLAB(懒人版)
2016-05-25 14:59
555 查看
话说俄罗斯来的myc虽然是搞Computer Vision的,但是在上学的时候从来没有接触过Neural Network,更别说Deep Learning了。在他求职的时候,Deep Learning才刚开始进入人们的视线。
然而现在如果你有幸被myc面试,他会问你这个问题
Deep Learning为什么要叫Deep Learning?和普通的Machine Learning有什么区别?
如果你答不上来,没关系,因为作为工程师,我们只要知道怎么在MATLAB里使用就可以了(并不是
为了展示Deep Learning对Computer Vision有多么深远的影响,myc为我们准备了下面的一个小demo.
如何让程序识别图中有什么东西?
![](https://pic4.zhimg.com/12b7536571a228f89c901d00d8b932e7_b.jpg)
反正MATLAB是这么做的
首先你得有Neural Network Toolbox
如果你有Computer Vision System Toolbox就更好了,这里我们用他提供的
来帮助我们导入一个Neural Network.
3. 你得有个支持CUDA的GPU
我们首先不要脸地下载大牛们训练好的网络,AlexNet是通过ImageNet提供的1000种不同的物体的图片训练出的网络,换言之,他认识这1000种东西,超出这个范围就不认识了
接下来导入到MATLAB中
读入我们的图片
AlexNet模型需要图片是227x227x3的彩图
激活最后一个分类Layer
找到概率最大的类
看看是啥
回到ImageNet看看这是哪个类别
![](https://pic1.zhimg.com/c54e8100b8dc292bac08ec3b3f01b3c4_b.png)
原来是拉布拉多,神奇吧!最重要的是,全程都很无脑有没有?
老板:不错啊myc,这么快就把狗给识别出来了
myc:哪里哪里,借用了别人的成果而已
老板:其实吧,这只狗是金毛
myc:……
老板:没事,其实人也经常弄错,再接再厉!
myc:……怪我咯
作者:波特
链接:https://zhuanlan.zhihu.com/p/20944764
来源:知乎
然而现在如果你有幸被myc面试,他会问你这个问题
Deep Learning为什么要叫Deep Learning?和普通的Machine Learning有什么区别?
如果你答不上来,没关系,因为作为工程师,我们只要知道怎么在MATLAB里使用就可以了(并不是
为了展示Deep Learning对Computer Vision有多么深远的影响,myc为我们准备了下面的一个小demo.
如何让程序识别图中有什么东西?
![](https://pic4.zhimg.com/12b7536571a228f89c901d00d8b932e7_b.jpg)
反正MATLAB是这么做的
首先你得有Neural Network Toolbox
如果你有Computer Vision System Toolbox就更好了,这里我们用他提供的
helperImportMatConvNet
来帮助我们导入一个Neural Network.
3. 你得有个支持CUDA的GPU
我们首先不要脸地下载大牛们训练好的网络,AlexNet是通过ImageNet提供的1000种不同的物体的图片训练出的网络,换言之,他认识这1000种东西,超出这个范围就不认识了
cnnURL = 'http://www.vlfeat.org/matconvnet/models/beta16/imagenet-caffe-alex.mat'; % Store CNN model in a temporary folder cnnMatFile = fullfile(tempdir, 'imagenet-caffe-alex.mat'); if ~exist(cnnMatFile, 'file') % download only once disp('Downloading pre-trained CNN model...'); websave(cnnMatFile, cnnURL); end
接下来导入到MATLAB中
convnet = helperImportMatConvNet(cnnMatFile)
读入我们的图片
I = imread('sherlock.jpg');
AlexNet模型需要图片是227x227x3的彩图
I = imresize(I,[227,227]);
激活最后一个分类Layer
category = activations(convnet,I,’classificationLayer‘);
找到概率最大的类
[~,idx] = max(category);
看看是啥
convnet.Layers(end).ClassNames{idx} ans = ’n02099712‘
回到ImageNet看看这是哪个类别
![](https://pic1.zhimg.com/c54e8100b8dc292bac08ec3b3f01b3c4_b.png)
原来是拉布拉多,神奇吧!最重要的是,全程都很无脑有没有?
老板:不错啊myc,这么快就把狗给识别出来了
myc:哪里哪里,借用了别人的成果而已
老板:其实吧,这只狗是金毛
myc:……
老板:没事,其实人也经常弄错,再接再厉!
myc:……怪我咯
作者:波特
链接:https://zhuanlan.zhihu.com/p/20944764
来源:知乎
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- 详解Matlab中 sort 函数用法
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 简述Matlab中size()函数的用法
- 从java中调用matlab详细介绍
- CUDA搭建
- 稀疏自动编码器 (Sparse Autoencoder)
- 白化(Whitening):PCA vs. ZCA
- softmax回归
- 卷积神经网络初探
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能入门教程之十一 最强网络DLSTM 双向长短期记忆网络(阿里小AI实现)
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 详解Matlab中 sort 函数用法
- 简述Matlab中size()函数的用法
- 51CTO学院优质新课抢先体验-5折好课帮你技能提升、升职加薪