和小鸡一起用MATLAB入门深度学习

(一)初级入门

可以跳过的前言

为什么要用MATLAB来学习深度学习呢?作为一个半路出家的程序猿和数学渣渣,小鸡之前看的深度学习资料都是理论上的,自己对一些概念都理解不够深入一想到要自己建立一个网络就脑壳疼。。。
众所周知,MATLAB是一款已经商用的软件,它的帮助文档简洁明了,作为我掌握的第一种编程语言,实在是很友好了,相比python还是matlab对我来说亲切一些。从2016年开始,MATLAB就加入了神经网络的工具箱,2020版本更加完善了,加入了Deep Network Designer的GUI,不需要码代码建一个神经网络不是梦~ 于是乎,我就决定利用MATLAB来学习深度学习。
在这里插入图片描述

写在最前,这是小鸡第一次写文章也是第一次做深度学习网络,如果有各种问题欢迎大家评论指正,如果有任何疑问也欢迎一起讨论。

matlab提供的资源

除了工具箱和帮助文档之外,matlab也提供了很多学习资料、视频和案例来供大家学习。在这里把链接附在下面。

  1. “深度学习入门之旅” 学习视频:
    https://ww2.mathworks.cn/learn/tutorials/deep-learning-onramp.html
  2. "Deep Learning in matlab"帮助文档:
    https://www.mathworks.com/help/deeplearning/ug/deep-learning-in-matlab.html#bvmv5
  3. “matlab深度学习简介” 电子书下载链接:
    https://ww2.mathworks.cn/campaigns/offers/deep-learning-with-matlab.confirmation.html?elqsid=1540191652274&potential_use=Student

小菜鸡入门——MATLAB实例:11行代码实现深度学习

在这个案例里,我使用已经训练好的AlexNet来识别身边的物体,看看分类效果如何。
MATLAB给的例子直接使用一个外置摄像头,我没有编写摄像头,所以改成直接读入图片。

% edited from matlab demo
% https://ww2.mathworks.cn/matlabcentral/fileexchange/60659-deep-learning-in-11-lines-of-matlab-code
close all, clear, clc

%% 基础设置
nnet = alexnet;  % 导入Alexnet,命名为nnet
picFolder = 'C:\Users\cxy\Desktop\matlab  AlexNet\cxy test\pics\'; % 要进行测试的图片路径
picNames = struct2cell(dir([picFolder,'*.jpg']));
picNum = length(picNames);

saveFolder = [pwd,'\pics after labeled\'];
if ~exist(saveFolder)
   mkdir(saveFolder);  %创建一个保存输出结果的文件夹
end

%% 图片识别
for ipic = 1:picNum
    temp_picName = picNames{1,ipic};
    picture = imread([picFolder,temp_picName]); %每次读入一个图片
    picture = imresize(picture,[227,227]);  % AlexNet的输入必须是 227*227*3,所以进行大小变换
    label = classify(nnet, picture);        % 使用AlexNet对图片进行识别,得到label
    image(picture);     % 展示图片
    title(char(label)); % 展示AlexNet识别出的label
    drawnow;
    axis off
    temp_savename = [saveFolder,temp_picName];
    saveas(gcf,temp_savename)  %保存图片
end
disp('Done!')

改完之后的代码就不止11行了,不过能实现的效果是一样的,让我们来看一眼AlexNet的识别效果。
看起来识别效果是不是很不错?
是不是感觉效果很不错?就像教学视频里的一样。 可是当我换一张图片,或者对原来的图片做一些变换。。。

是不是有点搞笑了?居然把我的水杯识别成了转笔刀;向日葵花盘像菠萝蜜,好吧,有点道理;笔记本电脑瞬间变身家庭影院~;一样是兔兔为什么我就要入赘信天翁?哭哭…

整体上来看AlexNet想要运用到现实生活中还是有距离的…
不过这个案例简单到让我觉得,学会神经网络,so easy~

讲完matlab提供的学习资源和如何把一个训练好的网络拿来用,下一次我们来改装一下现有的神经网络~ 小碎步学习深度学习~

最后粘贴一下matlab已经预训练好(经典,直接可用,可改)的网络有哪些,放眼过去小鸡竟然听说过好几个参加过ImageNet的神经网络(膨胀了)。这些网络只需要下载后就可以开始使用了,也可以摘取里面的几部分来用。
在这里插入图片描述

写于20200530

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值