【实操】深度学习网络万万千,到底怎么把我的数据放进去?

在这里插入图片描述
如今最热的方向莫过于深度学习了,什么AlexNet,GoogleNet,几乎都耳熟能详,毕竟毕业设计一般的题目都和深度学习有关。

相信看到这篇文章的同学,对深度学习大概是干啥的,肯定有所理解。但是可能苦恼于怎么把我自己的数据导入这些网络里,怎么让模型输出分类/识别的结果?

下面以在 Matlab 里用 AlexNet 进行 分类 为例,带大家从零开始使用模型,一直到输出分类结果。

首先要进行分类的话,肯定需要有已经分好类的数据库,如下图所示。ClassficationData文件夹里有五个子文件夹,代表五类样本。
在这里插入图片描述
可以看到,每个子文件夹中的数据格式均为jpg
在这里插入图片描述
现在要做的事,就是用这些数据,训练AlexNet模型,使其可以自动对照片进行分类。由于AlexNet对输入图片尺寸有要求(227227),所以我们首先要对原始数据库的图片尺寸统一为227227。这部分代码参考链接1。

链接1:Matlab批量修改文件夹中照片尺寸

值得注意的是,在使用链接1里的代码时,需要预先建立一个新的文件夹,以及里面的子文件夹(同名),这样才可以把修改好的图片存进来。如下图:
在这里插入图片描述
接下来只需要把照片导入模型里就OK了,我们这里参考matlab官方例程,为大家做个示范,代码如下:

imds = imageDatastore('F:\模式识别作业\ResizeClassificationData\', ...
    'IncludeSubfolders',true,'LabelSource','foldernames');

% 每类样本中测试集的个数,若每类样本有50个,测试集:训练集 = 7:3 = 35:15
numTrainFiles = 35;                                                         
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');

layers1 = alexnet;                                                          % 引入alexnet
layers2 = layers1.Layers(1:end-3);                                          % 去掉alexnet后3层
layers = [layers2                                                           % 修改alexnet后3fullyConnectedLayer(5,'WeightLearnRateFactor',20,'BiasLearnRateFactor',20)
          softmaxLayer
          classificationLayer];
inputSize = layers1.Layers(1).InputSize;
      
augimdsValidation = augmentedImageDatastore(inputSize(1:2),imdsValidation);
options = trainingOptions('sgdm', ...                                       % 模型参数调整
    'MiniBatchSize',10, ...
    'MaxEpochs',6, ...
    'InitialLearnRate',1e-4, ...
    'Shuffle','every-epoch', ...
    'ValidationData',augimdsValidation, ...
    'ValidationFrequency',3, ...
    'Verbose',false, ...
    'Plots','training-progress');

net = trainNetwork(imdsTrain,layers,options);                               % 训练好的模型

YPred = classify(net,imdsValidation);                                       % 预测结果输出
YValidation = imdsValidation.Labels;

accuracy = sum(YPred == YValidation)/numel(YValidation)                     % 精度输出

结果输出如下:
在这里插入图片描述
最后,将整个功能代码封装成一个简单好操作的形式,点下“运行”就完事了,实现 尺寸重定义 + alexnet模型训练输出 一条龙,不用再手动建立新的文件夹,效果如下:
在这里插入图片描述

猜你喜欢:👇🏻
基于小波变换的图像边缘检测(matlab祖传代码注释)
Matlab对话框总结

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值