形状识别神经网络性能不佳
Shape recognition Neural Network poor performance
我正在尝试实现一个用于形状识别的神经网络——实际上那些形状是字母。我想实现这个网络来处理从形状中检索到的傅里叶描述符。我的问题是,无论我做什么,改变隐藏层神经元的数量,使用不同的训练函数等等,我总是得到或多或少等于 0.25 的网络性能。我已经为此苦苦挣扎了几天,我真的在这里碰壁了,所以我将不胜感激在这件事上的任何帮助。
images = readImages(path, str_format);
Tindex = 1;
T = zeros(size(images,1),size(images,1)/4);
[F Z] = GetLetterDescriptors(images{1});
descriptors = zeros(length(F),size(T,1));
for i = 1 : size(images,1)
[F, Z] = GetLetterDescriptors(images{i});
descriptors(:,i) = F;
T(i,Tindex) = 1;
Tindex = Tindex + 1;
end
net = feedforwardnet(35);
T = T';
net.layers{2}.transferFcn = 'logsig';
net.layers{1}.transferFcn = 'logsig';
net = trainscg(net,descriptors,T,nnMATLAB);
y = sim(net,descriptors,[],[]);
perf = perform(net,T,y);
F 是实数值傅立叶描述符。
我很久以前就设法解决了这个问题,但我完全忘记了这个 post。为了解决这个特殊问题,我不得不使用 patternet
函数而不是 feedforwardnet
,然后网络可以在几个时期内成功学习。
我正在尝试实现一个用于形状识别的神经网络——实际上那些形状是字母。我想实现这个网络来处理从形状中检索到的傅里叶描述符。我的问题是,无论我做什么,改变隐藏层神经元的数量,使用不同的训练函数等等,我总是得到或多或少等于 0.25 的网络性能。我已经为此苦苦挣扎了几天,我真的在这里碰壁了,所以我将不胜感激在这件事上的任何帮助。
images = readImages(path, str_format);
Tindex = 1;
T = zeros(size(images,1),size(images,1)/4);
[F Z] = GetLetterDescriptors(images{1});
descriptors = zeros(length(F),size(T,1));
for i = 1 : size(images,1)
[F, Z] = GetLetterDescriptors(images{i});
descriptors(:,i) = F;
T(i,Tindex) = 1;
Tindex = Tindex + 1;
end
net = feedforwardnet(35);
T = T';
net.layers{2}.transferFcn = 'logsig';
net.layers{1}.transferFcn = 'logsig';
net = trainscg(net,descriptors,T,nnMATLAB);
y = sim(net,descriptors,[],[]);
perf = perform(net,T,y);
F 是实数值傅立叶描述符。
我很久以前就设法解决了这个问题,但我完全忘记了这个 post。为了解决这个特殊问题,我不得不使用 patternet
函数而不是 feedforwardnet
,然后网络可以在几个时期内成功学习。