话说俄罗斯来的myc虽然是搞Computer Vision的,但是在上学的时候从来没有接触过Neural Network,更别说Deep Learning了。在他求职的时候,Deep Learning才刚开始进入人们的视线。 然而现在如果你有幸被myc面试,他会问你这个问题
Deep Learning为什么要叫Deep Learning?和普通的Machine Learning有什么区别?如果你答不上来,没关系,因为作为工程师,我们只要知道怎么在MATLAB里使用就可以了(并不是
为了展示Deep Learning对Computer Vision有多么深远的影响,myc为我们准备了下面的一个小demo.
如何让程序识别图中有什么东西?
文章图片
反正MATLAB是这么做的
- 首先你得有Neural Network Toolbox
- 如果你有Computer Vision System Toolbox就更好了,这里我们用他提供的
-
helperImportMatConvNet
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看看这是哪个类别
【Deep|深度学习 Deep Learning with MATLAB(懒人版)】
文章图片
原来是拉布拉多,神奇吧!最重要的是,全程都很无脑有没有?
老板:不错啊myc,这么快就把狗给识别出来了
myc:哪里哪里,借用了别人的成果而已
老板:其实吧,这只狗是金毛
myc:……
老板:没事,其实人也经常弄错,再接再厉!
myc:……怪我咯
作者:波特
链接:https://zhuanlan.zhihu.com/p/20944764
来源:知乎
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- paddle|动手从头实现LSTM
- pytorch|使用pytorch从头实现多层LSTM
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- pytorch|YOLOX 阅读笔记
- 前沿论文|论文精读(Neural Architecture Search without Training)
- 联邦学习|【阅读笔记】Towards Efficient and Privacy-preserving Federated Deep Learning
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- 深度学习|深度学习笔记总结
- 《繁凡的深度学习笔记》|一文绝对让你完全弄懂信息熵、相对熵、交叉熵的意义《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(中)(DL笔记整理