思路
Matlab2022a
1图片分为4类(正常,枯萎,蚜虫,粉虱)
2图片处理(未进行)
模型需要统一图像照片的尺寸大小
3下载deep learning 网络模型
4建立训练和识别模型文件
一个训练神经 一个图像识别类型
matlab程序
模型训练
%搭建网络
tic %计时器?
%%数据导入
clear;clc;%清理内存
%digitDatasetPath='D:\MATLAB\训练数据';%图片数据源
digitDatasetPath='C:\Users\yx\Desktop\Pomrgranate Pest and Disease database';%图片数据源
%,用来处理深度学习数据集的函数,用文件夹名做图像标签。
imds=imageDatastore(digitDatasetPath,"IncludeSubfolders",true,"LabelSource","foldernames");
%划分训练集与测试集
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.8,'randomized');
%导入预训练参数
%params = load("D:\params_2022_06_12__17_09_22.mat");
params = load("C:\Users\yx\Desktop\matlab\params_2023_02_16__22_23_03.mat");
%搭建神经网络
layers = [
imageInputLayer([227 227 3],"Name","data","Mean",params.data.Mean)
convolution2dLayer([11 11],96,"Name","conv1","BiasLearnRateFactor",2,"Stride",[4 4],"Bias",params.conv1.Bias,"Weights",params.conv1.Weights)
reluLayer("Name","relu1")
crossChannelNormalizationLayer(5,"Name","norm1","K",1)
maxPooling2dLayer([3 3],"Name","pool1","Stride",[2 2])
groupedConvolution2dLayer([5 5],128,2,"Name","conv2","BiasLearnRateFactor",2,"Padding",[2 2 2 2],"Bias",params.conv2.Bias,"Weights",params.conv2.Weights)
reluLayer("Name","relu2")
crossChannelNormalizationLayer(5,"Name","norm2","K",1)
maxPooling2dLayer([3 3],"Name","pool2","Stride",[2 2])
convolution2dLayer([3 3],384,"Name","conv3","BiasLearnRateFactor",2,"Padding",[1 1 1 1],"Bias",params.conv3.Bias,"Weights",params.conv3.Weights)
reluLayer("Name","relu3")
groupedConvolution2dLayer([3 3],192,2,"Name","conv4","BiasLearnRateFactor",2,"Padding",[1 1 1 1],"Bias",params.conv4.Bias,"Weights",params.conv4.Weights)
reluLayer("Name","relu4")
groupedConvolution2dLayer([3 3],128,2,"Name","conv5","BiasLearnRateFactor",2,"Padding",[1 1 1 1],"Bias",params.conv5.Bias,"Weights",params.conv5.Weights)
reluLayer("Name","relu5")
maxPooling2dLayer([3 3],"Name","pool5","Stride",[2 2])
fullyConnectedLayer(4096,"Name","fc6","BiasLearnRateFactor",2,"Bias",params.fc6.Bias,"Weights",params.fc6.Weights)
reluLayer("Name","relu6")
dropoutLayer(0.5,"Name","drop6")
fullyConnectedLayer(4096,"Name","fc7","BiasLearnRateFactor",2,"Bias",params.fc7.Bias,"Weights",params.fc7.Weights)
reluLayer("Name","relu7")
dropoutLayer(0.5,"Name","drop7")
fullyConnectedLayer(3,"Name","fc","BiasLearnRateFactor",2)
softmaxLayer("Name","prob")
classificationLayer("Name","classoutput")];
%配置训练参数
options=trainingOptions("sgdm",...
"MiniBatchSize",20,...
'MaxEpochs',8,...
"InitialLearnRate",1e-3,...
'Shuffle',"every-epoch",...
"ValidationData",imdsValidation,...
"ValidationFrequency",30,...
"ExecutionEnvironment",'cpu',...
"Verbose",false,...
"Plots","training-progress");
%训练神经网络
net=trainNetwork(imdsTrain,layers,options);
%保存训练好的参数
save('Network','net');
模型识别
%用训练好的网络识别图像类型
clc;clear;
%Load the trained model
load('Network','net');
%Read the image to classify
[file,path]=uigetfile('*');
image=fullfile(path,file);
Im=imresize(imread(image),[227,227]);
file
%Adjust size of the image
sz=net.Layers(1).InputSize;
Im=Im(1:sz(1),1:sz(2),1:sz(3));
%Classify images
label=classify(net,Im)
label=str2num(char(label))+1;
%展示
imshow(Im)
运行结果
问题没有解决
不要从头到尾去写一篇论文。越是有难度的,越应该放在最后。论文引言,摘要需要最后写。
一、大概步骤
1.列出大纲
使用大纲工具,来快速把论文分成若干可以驾驭的小部分。大纲工具org-mode,workflowy, dynalisto,幕布。
2.图表
这就到了第二步,把图表之类的研究结果扔进去。要先有研究。不然这些研究结果从何而来?
3.实验
你需要叙述你的数据来源、实验组织方法、数据分析流程,以及描述实验结果。
4.讨论
需要讨论数据,读者面对结果数据应该有直觉上的疑问,用这一部分提出来,并且认真回应。
5.总结
总结本研究; 指出不足,讨论原因; 展望日后的改进。
6.摘要
上述若干部分写完,摘要呼之欲出。趁热打铁,写了吧。许多期刊,都会在模板里给你一个结构化摘要的写作指引。你可以参考它,逐项填空。这样摘要不仅内容完整,逻辑也会很清晰,摘要写作务必要提纲挈领。你要祭起奥卡姆剃刀,删除一切冗余部分。千万不要忘了人们的阅读顺序。千万不要忘了人们的阅读顺序。写完摘要,别忘了顺手把关键词也填上。
7.文献回顾
许多人写到这里的时候会堆砌参考文献的摘要,凑字数。
文献回顾的目的,不只是向读者或者老师证明你勤奋刻苦,读了那些文献,而是进行学术研究环境扫描。
你得用前人的重要研究成果,构成一张网。在这张网上,找准你自己这篇论文的位置,镶嵌上去。(难) ,你不仅要了解本领域都有哪些重要研究,还要对它们的贡献与不足如数家珍。
8.引言
需要研究如何写价值和必要性,背景和研究现状。
二、参考方法
1.寻找主题
了解学校对于毕业论文的规定,进行整体布局,比如哪些部分字数要达到多少,了解自己的毕业论文要达到什么等级,什么水平(如:优,良),可以参考往届优秀毕业论文,选择导师擅长的课题方向,多沟通。
2.论文检索
中文检索平台(知网)高级检索,学术期刊检索,选择对机电专业比较有参考价值的,直接搜与主题相关的不一定效果很好,几个方面分开搜索结合效果较好,可以利用文献综述找参考文献,如果有合适的就去学习他的研究过程,再参考文献
英文如sci,可用两个平台web of science (下载阅读)和百度搜 谷歌镜像 (给钱或者没有权限,复制下来去百度学术看)
3.阅读参考文献
分成几个区域,首读摘要和结论,实证论文看数据来源,找出数据库,文献综述帮助我们梳理论文,给论文编号,给每个论文写他重要的部分,或者说有帮助的部分