MATALB 卷积神经网络 图片二分类

      正忙着写论文的时候,突然看到她的询问,连续两晚失眠,有了这个程序。以前没用过神经网络,所有代码都是基于别人基础上修改,仅限于能实现自己需要的功能。

     从GitHub找到一个创建用于图像识别的卷积神经网络的代码,代码下载,根据此修改。

%这里是训练数据存放的文件夹,里面有两个子文件夹,1是非正常的轨迹图,0是正常的轨迹图
Data = fullfile('C:\Users\清风\Desktop\网络训练数据集\');

 

因为我的是分为两类,所以有两个子文件夹,分别存着不同类的图片。注意该数据文件夹不要有多的子文件夹或图片

%测试数据的百分之几作为训练数据,剩下的作为测试
percent = 0.9;
fullyConnectedLayer(2);将数据分为几类

下面是训练参数设置,这两个参数影响着训练的好坏

%进行网络训练,500是迭代次数,0.00005是学习效率,这两个数可以修改
options = trainingOptions('sgdm','MaxEpochs',1000, ...
	'InitialLearnRate',0.00005);

根据设置好的参数训练网络

convnet = trainNetwork(trainData,layers,options);

这是我的训练结果,迭代625次,正确率已经100%。

MATALB 卷积神经网络 图片二分类_第1张图片

测试训练好的模型,

%将训练数据的一部分作为测试数据,测试训练好的网络识别正确率
YTest = classify(convnet,testData)
TTest = testData.Labels;
confMat = confusionmat(TTest, YTest);
accuracy = sum(YTest == TTest)/numel(TTest)

最后我将训练好的模型保存下来,便于以后调用

%保存训练好的网络
save('C:\Users\清风\Desktop\网络训练数据集\cnn3.mat','convnet');

此代码有两个问题需要注意:

第一次我所有的训练图片都为200*200的,结果提示内存不足。使用如下代码修改图片大小

img = imresize(img,[100,100]);

运行,该处代码报错

helperDisplayConfusionMatrix(confMat);

屏蔽掉,运行正常。

你可能感兴趣的:(MATALB 卷积神经网络 图片二分类)