美文网首页
7.基于Matlab的AlexNet图像迁移学习

7.基于Matlab的AlexNet图像迁移学习

作者: Leoxxxu | 来源:发表于2018-10-11 19:00 被阅读0次
 本文的实验机器为Intel(R)Core(TM) i5-6200U的2.30 GHz CPU、内存为8GB,实现平台是64位的Windows10 Home,算法在Matlab 2018a上实现并运行的。
     图像数据集如果需要的话可以从百度网盘下载,链接:https://pan.baidu.com/s/1l_-962N_FsCcyr2VEJpRCw  提取码:la2d
  本文快速的用MATLAB对自己的图像数据集进行训练和分类,效果非常不错,利用预训练的alexnet网络对新图像集进行迁移学习,分类准确率很高。

首先,要知道AlexNet的输入层大小是2272273的,所以在输入自己的数据之前,需要改变输入矩阵大小,下面定义一个IMAGERESIZE函数承担此任务。

function output = IMAGERESIZE(input)
input = imread(input);
if numel(size(input)) == 2
    input = cat(3,input,input,input);% 用于将图片改为3通道
end
output = imresize(input,[227,227]);
  接着就是卷积神经网络的结构定义了,通过imageDatastore函数将数据集读取。
function predict_transfer_alexnet()
net = alexnet;% 深度学习alexnet经典网络结构,没有的可以去matlab center下载
trainsferLayer = net.Layers(1:end-3);
 
imds = imageDatastore('.\train_images',...
    'includeSubfolders',true,...
    'labelsource','foldernames','ReadFcn',@IMAGERESIZE);
%第一个参数./images表示文件所在的路径;
%includesubfolders:是否继续读取子文件夹中的图像数据;与后面的true相对应
%labelsource:图像 label 的来源;与后面的foldername相对应
T = countEachLabel(imds);%用于计算各类图像的数量
disp(T);
[imdsTrain,imdsTest] = splitEachLabel(imds,0.75);% 75%的数据为训练数据,其余的为测试数据
 
%% train
layers = [trainsferLayer;
    fullyConnectedLayer(5,'WeightLearnRateFactor',50,'BiasLearnRateFactor',50);%注意第一个参数为类别的数量,我这里是5
    softmaxLayer();
    classificationLayer()];
options = trainingOptions('sgdm',...
    'Maxepochs',5,...
    'InitialLearnRate',0.0001);
network = trainNetwork(imdsTrain,layers,options);
 
%% predict
predictLabels = classify(network,imdsTest);
testLabels = imdsTest.Labels;
 
accuracy = sum(predictLabels == testLabels)/numel(predictLabels);
disp(['accuracy:',num2str(accuracy)]); % 输出预测精度结果
 
end

其分类准确率如图所示:


image.png

相关文章

  • 7.基于Matlab的AlexNet图像迁移学习

    首先,要知道AlexNet的输入层大小是2272273的,所以在输入自己的数据之前,需要改变输入矩阵大小,下面定义...

  • 深度学习中的图片对象

    自2012年,AlexNet在ImageNet图像识别一战成名后,基于深度学习的图像识别快速发展。 图像识别也是深...

  • 2018-04-15 迁移学习的度量准则

    迁移学习的方法主要包括:基于样本的迁移,基于特征的迁移,基于模型的迁移和基于关系的迁移。 “迁移学习的总体思路可以...

  • 深度学习论文

    深度学习论文 图像分类方向 AlexNet ImageNet Classification with Deep C...

  • 迁移学习总结

    总结迁移学习的各种情况,并在TensorFlow中对AlexNet进行迁移学习以对德国交通标志进行分类。 1. 迁...

  • caffe实现多标签分类模型

    常规的基于CNN的图像分类网络如Lenet、Alexnet、VGGnet等都是单分类模型,本文记录在ubuntu1...

  • 使用GoogleNet和AlexNet迁移学习ECG

    今天的任务是依照这篇介绍的方法,使用GoogleNet和AlexNet迁移学习ECG。Signal Classif...

  • 【技术博客】基于AlexNet网络的垃圾分类

    【技术博客】基于AlexNet网络的垃圾分类 AlexNet AlexNet模型来源于论文-ImageNet Cl...

  • 图像处理入门书推荐

    《MATLAB图像处理实例详解》 《数字图像处理》 冈萨雷斯 《图像识别与项目实践――VC++、MATLAB技术实...

  • 神经风格迁移

    前言 图像的风格迁移是计算机视觉领域最有趣的应用之一,用深度学习实现图像的风格迁移,可以分为实现神经风格迁移算法和...

网友评论

      本文标题:7.基于Matlab的AlexNet图像迁移学习

      本文链接:https://www.haomeiwen.com/subject/mjxiaftx.html