分完数据,我们要实现BP神经网络的运算和测试。
既然BP神经网络已经设计好了,那么现在制作测试代码,一共选择50个物体,每个物体随机挑选20张图片,总共测试1000次,看其正确率。
% 测试代码
path = 'test_set';
namelist = dir(path);
res = 0;
for i = 1:50 % 挑出50个物体
k = rand(101); % 随机选择一个物体
if namelist(k).name == '.',continue,end
label = zeros(101, 1); % 作为标签
label(k,1) = 1;
name = namelist(k).name;
imglist = dir(strcat(path,'\',name));
len = length(imglist);
for j = 1:20 % 挑选10个图像
t = rand(len); % 随机选择一个图像
if imglist(t).name == '.',continue,end
img = imread(strcat(path,'\',name,'\',imglist(t).name));
input = img_preprocess(img); % 预处理
hide = sigmoid_mat(hide_inactive); % 输出到隐藏层
output = sigmoid(output_inactive); % 输出到输出层
[val, index] = max(output); % 获取最大值的索引
if index == k
res = res+1;
end
end
end
res/1000
至此,基本框架搭好了,下面,就集中注意力在图像预处理,卷积池化,和深度学习了。