如今最热的方向莫过于深度学习了,什么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后3层fullyConnectedLayer(5,'WeightLearnRateFactor',20,'BiasLearnRateFactor',20)softmaxLayerclassificationLayer];
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模型训练输出 一条龙,不用再手动建立新的文件夹,效果如下:

猜你喜欢:

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

  1. 如何利用扬声器构建深度学习网络?

    简 介: 来自于康纳尔大学的这篇研究论文给出了 一个利用物理系统实现深层网络学习和推理的框架.本文对于文章举例的三个系统不属于线性时不变系统进行分析.除了其中SHG系统比较复杂之外,其它两个系统(三极 ...

  2. 深度学习网络backbone?head、neck、bottleneck、GAP、Embedding、pretext task、downstream task、temperature parameter

    一些术语: backbone这个单词原意指的是人的脊梁骨,后来引申为支柱,核心的意思.在神经网络中,尤其是CV领域,一般先对图像进行特征提取(常见的有vggnet,resnet,谷歌的inceptio ...

  3. SSRNet:用于大规模点云表面重建的深度学习网络(CVPR2020)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 整理人:袁赣张秦,付前程,张琛,廖新耀 论文: [1] Zhengxin Mi#, Yiming Lu ...

  4. 不用深度学习网络,只需预先设置NAS算法,就能实现AutoML自动机器学习的革命吗?

    AutoML(自动机器学习)是深度学习的新方式,利用大数据分析.高性能计算.数据管理.算法.边缘计算等技术.有了AutoML,我们就不再需要设计复杂的深度学习网络,用于数据采集.数据预处理.优化.应用 ...

  5. 视频教程-深度学习30天系统实训-深度学习

    深度学习30天系统实训 计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战讲师.在图像识别领域有着丰富经验,实现过包括人脸识别,物体识别,关键点检测等多种应用的新算法. 参与多个国家级计 ...

  6. 深度学习网络每一层维度_每个人都可以使用深度学习

    深度学习网络每一层维度 A year ago, a few of us started working on Cortex, an open source platform for building ...

  7. 何恺明团队新作!深度学习网络架构新视角:通过相关图表达理解神经网络

    标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助于对现有网络架构进行更深层次的分析与 ...

  8. 【模型解读】深度学习网络之Siamese Network网络

    文章首发于微信公众号<有三AI> [模型解读]深度学习网络只能有一个输入吗 继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见 ...

  9. 【论文解读】深度学习网络架构新视角:通过相关图表达理解神经网络(何恺明团队新作)...

    文章来源于极市平台,作者Happy 标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助 ...

最新文章

  1. 2022-2028年中国半导体硅片行业深度调研及投资前景预测报告
  2. 获取项目文件在服务器的真实路径
  3. 第三次学JAVA再学不好就吃翔(part41)--修饰符
  4. lumanager mysql密码_LuManager单独安装mysqli
  5. OpneCV之图像的平移、翻转、旋转、缩放、裁剪(笔记04)
  6. 深度学习样本归一化到[0,1]还是[-1,1]
  7. Oracle-常见的错误
  8. 简单整蛊室友,只需几行bat病毒代码
  9. Hadoop大数据测试:Hadoop大数据平台测试流程
  10. sublime text3 炫酷主题
  11. 微信小程序之实现隔行变色表格
  12. iOS之获取手机DeviceToken,以及苹果测试推送工具Easy APNs Provider
  13. 关于如何有效锻炼肌肉的十个小贴士(转)
  14. Java中的日历类:输入生日计算——那些活过的日子与10000天纪念
  15. mybatis(三) XML映射器之select、update、delete、insert标签
  16. jQuery实现悬浮窗口
  17. Android常用存储类型与简介
  18. 什么是令牌桶(Token Bucket)?
  19. 2021-2027全球与中国自然对流烤炉市场现状及未来发展趋势
  20. Apache Flink 集成 Apache Hudi 快速入门指南

热门文章

  1. 【每日一包0015】gradient-string
  2. topcoder srm 490 div1
  3. [LeetCode]Merge Intervals
  4. {dede:list}和{dede:arclist}的区别
  5. 手机/移动前端开发需要注意的20个要点
  6. 2016 大数据版图
  7. H3C防火墙实现NAT+DHCP
  8. Emacs中使用Forms-mode以表格形式展示/编辑简单的文本数据
  9. cisco 单词 词典
  10. nyoj 133 子序列(尺取法+离散化)