Matlab深度学习工具试玩手册一:基本操作与迁移学习

本文介绍了在Matlab中使用深度学习工具进行图像分类的步骤,包括利用现成网络(如GoogLeNet)进行图片分类,构建简单的分类网络,以及进行迁移学习。通过具体的代码示例,展示了数据处理、网络构建、训练和验证的过程,适合Matlab深度学习初学者参考。
摘要由CSDN通过智能技术生成

本文同时发布于知乎(用户名Haoran),如需转载,请注明出处。

目录

前言

一、利用现成网络进行分类

二、构建简单的分类网络

三、迁移学习


前言

Matlab从2016a版本开始提供了深度学习的相关工具,可以很方便地构建自己的网络或下载一些现成的经典网络(如AlexNet,GoogLeNet和VGG系列)进行迁移学习。作为一个初学者,我粗浅地认为,对于深度学习,我们实际的操作步骤可以分三大块:数据集(包括载入图片,制作训练集验证集,送入网络前对图片进行预处理),构建网络和选择训练方式。本文将基于Matlab2017b,紧抓这三块,基于3个Matlab的官方示例,分享Matlab深度学习工具的初步试玩心得。


一、利用现成网络进行分类

该部分将利用GoogLeNet进行图片分类,目的在于通过介绍几个内置函数的使用,演示如何在Matlab2017b中进行现成网络的下载,如何调整图片尺寸以与网络输入层相符,以及怎么将下载的网络运用在单独的一张图片上进行测试。

1、载入网络

在使用GoogLeNet之前,需要在add-one explorer上进行下载安装,同时界面上会介绍网络的相关使用方式(由于GoogLeNet过于复杂,在此不展示其内部结构):


根据上述内容,载入GoogLeNet:

net = googlenet;

2、调整图片尺寸

Matlab官方示例的图片是经过预先裁剪处理后的,最终运行得精确度在95%左右,现在我们随便选择一张未经预处理的桌面壁纸(1920X1080)进行测试,看效果如何。

调整图片尺寸的目的是为了与网络输入层参数相匹配,因此我们需要首先获取GoogLeNet输入层参数:

inputSize = net.Layers(1).InputSize;

调整图片尺寸,在此我们需要用到imread()和imresize()两个函数:

%读入图像
B = imread('bird.jpg'); 
%重设图像尺寸,若inputSize=[227 227 3],则inputSize[1:2]=[227 227],相当于取inputSize前两维
B = imresize(B, inputSize(1:2)); 

3、图片分类测试

现在,将调整后的图片送入GoogLeNet进行测试:

figure
imshow(B)
%取Googlenet输出层最后能分辨的对象类别
classNames = net.Layers(end).ClassNames;
title(string(label) + "," + num2str(100*scores(classNames == label), 4) + "%");


测试结果显示图片内容有51.65%的可能性为brambling(燕雀),由于测试图片含有大量背景干扰,仅图片大约中间位置为待测对象,而不论图片中的是否为燕雀,预测结果的大方向是可以接受的。

二、构建简单的分类网络

该部分将实现一个简单分类网络的构建并在新数据集上运行测试,目的在于熟悉深度学习的核心步骤,并通过介绍几个内置函数的使用实现从载入数据、构建网络、训练网络到作出预测的整个流程。

1、数据集处理

假设我们已获取所需图片,并人为将其分门别类放置于地址'D:\Matlab\ImageData'下的各子文件夹中(如本例数据集中含写有数字0-9的图片,我们

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值