Efficient-Net基于Efficient-Net效滤网的目标识别算法的MATLAB仿真

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Efficient-Net基于Efficient-Net效滤网的目标识别算法的MATLAB仿真相关的知识,希望对你有一定的参考价值。

%定义efficientnet的结构
layers = [
    imageInputLayer([128 128 3]);%注意,128,128,3是训练样本的大小,这个和参考文献不一样,要根据实际输入设置
    %stage1
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 1
    batchNormalizationLayer;
    reluLayer;
    maxPooling2dLayer(floor(resl)+1,'Stride',2);
    
    %stage2
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 1
    batchNormalizationLayer;
    reluLayer;
    
    %stage3
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 2
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 2
    batchNormalizationLayer;
    reluLayer; 
    
    %stage4
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 2
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 2
    batchNormalizationLayer;
    reluLayer;
    maxPooling2dLayer(floor(resl)+1,'Stride',2);
    
    %stage5
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 3
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 3
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 3
    batchNormalizationLayer;
    reluLayer;
    maxPooling2dLayer(floor(resl)+1,'Stride',2);
    
    %stage6
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 3
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 3
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 3
    batchNormalizationLayer;
    reluLayer;
    
    %stage7
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 4
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 4
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 4
    batchNormalizationLayer;
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 4
    batchNormalizationLayer;
    reluLayer;
    maxPooling2dLayer(floor(resl)+1,'Stride',2);
    
    %stage8
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 1
    batchNormalizationLayer;
    reluLayer;
    maxPooling2dLayer(floor(resl)+1,'Stride',2);
    
    %stage9
    convolution2dLayer(floor(depth)+1,floor(width)+1,'Padding','same');%layer 1
    batchNormalizationLayer;
    reluLayer;
    %FC
    fullyConnectedLayer(CLASSNUM);
    %softmax
    softmaxLayer;
    %输出分类结果
    classificationLayer;];





options = trainingOptions('sgdm', ...
    'InitialLearnRate', 0.01, ...
    'MaxEpochs', 200, ...
    'Shuffle', 'every-epoch', ...
    'ValidationData', imdsValidation, ...
    'ValidationFrequency', 5, ...
    'Verbose', false, ...
    'Plots', 'training-progress');
rng(1);
%使用训练集训练网络
net         = trainNetwork(imdsTrain, layers, options);

训练过程如下:

训练精度为94.17%。

平均损失过程如下:

不同训练样本数量对应的训练性能(注意,每次训练会有一定的波动和偏差)

训练样本比例

改进前的训练性能

改进后的训练性能

5%

85.46%

92.23%

10%

89.20%

90.08%

20%

94.65%

92.94%

40%

93.53%

94.82%

60%

94.66%

98.06%

80%

94.67%

98.08%

90%

98.08%

100%

 A05-79

以上是关于Efficient-Net基于Efficient-Net效滤网的目标识别算法的MATLAB仿真的主要内容,如果未能解决你的问题,请参考以下文章

论文阅读 Colar: Effective and Efficient Online Action Detection by Consulting Exemplars

论文阅读 Colar: Effective and Efficient Online Action Detection by Consulting Exemplars

论文阅读 Colar: Effective and Efficient Online Action Detection by Consulting Exemplars

论文翻译:2020_RESIDUAL ACOUSTIC ECHO SUPPRESSION BASED ON EFFICIENT MULTI-TASK CONVOLUTIONAL NEURAL NETW

EfficientDet:Scalable and Efficient Object Detection

Efficient Estimation of Word Representations in Vector Space 笔记