0

我正在尝试实现一个用于形状识别的神经网络——实际上这些形状是字母。我想实现这个网络来处理从形状中检索到的傅里叶描述符。我的问题是,无论我做什么,改变隐藏层神经元的数量,使用不同的训练函数等等,我总是得到或多或少等于 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 是实数值傅立叶描述符。

4

1 回答 1

0

实际上很久以前我设法解决了这个问题,但我完全忘记了这篇文章。为了解决这个特殊的问题,我不得不使用patternetfunction 而不是feedforwardnet,然后网络可以在几个时期内成功学习。

于 2016-07-12T15:44:26.933 回答