最近,我在学习基于matlab的深度学习的内容,并整理出如下学习笔记。本文借鉴和引用了网上许多前辈的经验和代码,如有冒犯,请及时与我联系。
1. MATLAB与深度学习的简介
2. MATLAB构建深度学习模型相关的工具包
3. 初识Deep Learning Toolbox
Deep Learning Toolbox™ 提供了一个用于通过算法、预训练模型和应用程序来设计和实现深度神经网络的框架。
我们可以使用卷积神经网络(ConvNet、CNN)和长短期记忆 (LSTM) 网络对图像、时序和文本数据执行分类和回归。
对于小型训练集,我们可以使用预训练深度网络模型(包括 SqueezeNet、Inception-v3、ResNet-101、AlexNet、GoogLeNet 和 VGG-19)以及从 TensorFlow®-Keras 和 Caffe 导入的模型执行迁移学习。
要加速对大型数据集的训练,我们可以将计算和数据分布到桌面计算机上的多核处理器和 GPU 中(使用 Parallel Computing Toolbox™),或者扩展到群集和云,包括 Amazon EC2® P2、P3 和 G3 GPU 实例(使用 MATLAB® Distributed Computing Server™)。
扩展:官网资料.
4.Deep Learning Toolbox的安装
(1)官方途径
打开MATLAB软件,在附加功能资源管理器上安装。
(2)偷懒途径
官网下载安装又慢又卡,直接下载相应文件资源,放在指定路径更便捷。
C:\ProgramData\MATLAB\SupportPackages\R2018a\toolbox\nnet\
C:\ProgramData\MATLAB\SupportPackages\R2018a\toolbox\nnet\supportpackages\vgg16
C:\ProgramData\MATLAB\SupportPackages\R2018a\toolbox\nnet\supportpackages\resnet50
C:\ProgramData\MATLAB\SupportPackages\R2018a\toolbox\nnet\supportpackages\googlenet
C:\ProgramData\MATLAB\SupportPackages\R2018a\toolbox\nnet\supportpackages\caffe_importer
C:\ProgramData\MATLAB\SupportPackages\R2018a\toolbox\nnet\supportpackages\alexnet
nnet = alexnet; % 加载神经网络
安装成功之后,我们就可以运行下面示例了。
5.AlexNet
用一百多万张图像训练好的 CNN。AlexNet 最常用于图像分类。它可将图像划分为 1000 个不同的类别,包括键盘、鼠标、 铅笔和其他办公设备,以及各个品种的狗、猫、马和其他动物,AlexNet 于2012 年首次发布,已成为研究团体中众所周知的模型。
测试代码:
clear all;close all; clc;
picture = imread('1.jpg');
nnet = alexnet; % 加载神经网络
figure,imshow(picture);
picture = imresize(picture,[227,227]); % 调整图片大小
label = classify(nnet, picture); % 对图片分类 image(picture); % 显示图片 title(char(label)); % 显示标签
title(char(label));
clear all;close all;clc
% Access the trained model
net = googlenet;
% See details of the architecture
net.Layers
% Read the image to classify
I = imread('peppers.png');
% Adjust size of the image
sz = net.Layers(1).InputSize
I = I(1:sz(1),1:sz(2),1:sz(3));
% Classify the image using GoogLeNet
label = classify(net, I)
% Show the image and the classification results
figure,imshow(I);
text(10,20,char(label),'Color','white');