Matlab使用深度网络设计器为迁移学习准备网络

迁移学习通过对预训练网络进行微调,使深度学习模型能在少量数据下快速适应新任务,类似于“举一反三”,而不需要从头训练。本文使用matlab自带的深度网络设计器,可以便捷地修改预训练网络进行迁移学习,通过对预训练网络的最后一层进行解锁,调高学习率,使新层中的学习速度快于迁移层的学习速度,即可输入新数据,完成迁移学习的训练。

在实际工程应用中,构建并训练一个大规模的卷积神经网络是比较复杂的,需要大量的数据以及高性能的硬件。迁移学习则是“另辟蹊径”,将训练好的典型的网络稍加改进,用少量的数据进行训练并加以应用,将一个预先训练好的网络作为学习新任务的起点。利用迁移学习对网络进行微调,通常比从头开始训练一个随机初始化权重的网络要快得多、容易得多。使用较少数量的训练图像,就能将学习到的特征快速迁移到新任务中。

1.使用的数据

本文使用的数据集为 MathWorks Merch 数据集,这是包含 75 幅 MathWorks 商品图像的小型数据集,这些商品分属五个不同类(瓶盖、魔方、扑克牌、螺丝刀和手电筒)。数据的排列使得图像位于对应于这五个类的子文件夹中。

folderName = "MerchData";
unzip("MerchData.zip",folderName);

创建一个图像数据存储(Datastore),通过图像数据存储可以存储大图像数据集合,包括无法放入内存的数据,并在神经网络的训练过程中高效分批读取图像。对图像文件夹建立子文件夹,使用imageDatastore,可以将子文件夹名称转换为图像标签。

imds = imageDatastore(folderName, ...
    IncludeSubfolders=true, ...
    LabelSource="foldernames");

显示一些示例图像:

numImages = numel(imds.Labels);
idx = randperm(numImages,16);
I = imtile(imds,Frames=idx);
figure
imshow(I)

2.提取数据

提取类名称和类数目:

class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值