上一篇链接:MATALB 卷积神经网络 图片二分类
上一篇已经介绍了如何对数据通过CNN进行深度学习分类,并将训练好的模型保存下来。
这里将介绍一下如何调用自己已经训练好的模型进行数据分类。
1、加载模型
clear
close all
clc
load('-mat','C:\Users\清风\Desktop\网络训练数据集\cnn3.mat');%加载训练好的网络
2、加载数据并分类
DIR='C:\Users\清风\Desktop\测试数据集\normal\';%测试图片文件夹路径,最后必须加\,所有的测试图片大小必须与训练的相同
source=dir(strcat(DIR,'*.jpg'));
filenum=size(source,1); %图片个数
for k = 1: filenum
fname = strcat(DIR, num2str(k), '.jpg');
img = imread(fname);%读取图片
output(k,:)=classify(convnet,img)%图片识别,convnet为训练好的网络名称,不必更改
end
可以看到,关键函数就是classify()
第一个参数为已经训练好的网络名称,因为在上一篇保存训练结果时,我将网络名称,设为了“convnet”,所以这里的网络名称即为“convent”
save('C:\Users\清风\Desktop\网络训练数据集\cnn3.mat','convnet')
第二参数为我们需要分类的图片。
返回值就是分类结果,分两类就返回0或1。分三类就返回0、1、2,以此类推。
这里我用了个循环,将文件夹里所有的图片都分类一遍,将结果保存在数组中,并输出显示。
3、结果
1、测试normal
normal对应的分类为0,测试文件夹一共30个normal测试图片
2、测试abnormal
对应的分类为1,测试文件夹一共30个abnormal测试图片,结果只有50%的正确率,不知道是不是我的驯练样本太少了,才150个。