【问题标题】:Matlab neural network is not learningMatlab神经网络不学习
【发布时间】:2011-08-17 22:05:43
【问题描述】:

在尝试训练我的网络进行模式识别时,有人可以告诉我我的代码是否有误吗?我很绝望,因为尝试了一切,因为改变了 Hn、时代、规范了我的数据等等......但网络似乎没有发展。

这里是代码

net = newff(p,t,15,{},'traingd');
net.divideParam.trainRatio = 70/100;  % Adjust as desired
net.divideParam.valRatio = 15/100;  % Adjust as desired
net.divideParam.testRatio = 15/100;  % Adjust as desired
net.trainParam.epochs = 10000;
net.trainParam.goal = 0.01;
net.trainParam.show = 25;
net.trainParam.time = inf;
net.trainParam.min_grad = 1e-10;
net.trainParam.max_fail = 10;
net.trainParam.sigma = 5.0e-5;
net.trainParam.lambda = 5.0e-7;
net.trainParam.mu_max = 1e-20;
net.trainParam.lr = 0.001; 

% Train and Apply Network
[net,tr] = train(net,p,t);
outputs = sim(net,p);

% Create P.

% Plot
plotperf(tr)
plotfit(net,p,t)
plotregression(t,outpts)

我完全像这样运行它。 pt 分别是我的输入和目标。 只有我在尝试运行工具箱(nprtool)时无法引入目标,除非它来自演示?

【问题讨论】:

    标签: matlab neural-network


    【解决方案1】:

    当您启动 GUI (nprtool) 时,您应该能够从工作区中的变量中选择目标(和输入):

    关于你的第一个问题:

    • 你能尝试学习合成数据(当然适合模型)吗?
    • 您能否尝试使用默认的trainlm 选项而不是traingd

    【讨论】:

    • 感谢您的回复。我确实使用了工作区中的变量。发生的情况是,当我打开目标时,它没有给我选择的更改??????我能问点别的吗?两次我能够训练网络,一旦我改变目标,它就继续不训练。我想这可能是由于重量,我很幸运在一周内它可以工作两次。你知道什么是最好的重量开始吗?非常感谢
    • 可能是数据有问题,如果数据不遵循神经网络模型,那么算法可能不会收敛。
    • 但我不明白为什么在我尝试的很多次中它会收敛两次。 Trainlm 通常给我一个更糟糕的 mse。我开始绝望了,总是这样吗?我想尝试一下 weka,但是有空间问题,XMx 没有解决它:(
    • 不要绝望,它是一个很好的工具,只要你正确使用它(就像任何其他工具一样......)。通常初始条件是随机选择的,因此它可能会在某些时候收敛,而在其他时间不收敛。
    • 非常感谢您抽出宝贵的时间来回答,做这种事情的人能得到一些反馈真是太好了。我将继续尝试使用 nntool 尝试获得良好的重量并阅读手册..
    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 2019-03-15
    • 2020-10-29
    • 2016-11-28
    • 2013-04-22
    • 2018-10-05
    • 1970-01-01
    • 2017-02-28
    相关资源
    最近更新 更多