MATLAB中神经网络工具箱中LM算法的训练

时间:2018-06-17 09:18:54

标签: matlab neural-network

我正在尝试使用MATLAB中的神经工具箱来使用LM算法训练数据集。我使用的网络架构是带有一个隐藏层的前馈,而我使用的传输函数是输入到隐藏层的tansig和隐藏到输出层的纯线。在训练期间,屏幕上显示具有增加的历元数量的MSE的值,直到达到性能目标,或最大值。时代到了。但是,我感兴趣的是在我的硬盘驱动器中作为数据文件(.txt或.dat)从开始到训练结束的每个时期保存MSE的值。我浏览了很多,但我找不到办法做到这一点。有人可以在这方面帮助我。感谢。

3 个答案:

答案 0 :(得分:0)

如果使用名为net的网络创建代码,则可以使用函数[net tr] = train(net,x,t)获取有关MSE的信息。 例如,如果我们使用simplefit_dataset简单数据和一个简单的网络,结果就在tr.perf上,它显示了列车数据的每个纪元的MSE:

close all, clear all, clc, plt=0;
[x,t] = simplefit_dataset;
net = fitnet(10);
rng(0)
[net tr ] = train(net, x, t);
plt = plt+1, figure(plt), hold on;
plot(tr.perf,'b', 'LineWidth', 2)

有关详细信息,请访问以下链接: https://www.mathworks.com/matlabcentral/answers/57648-how-to-plot-mse-for-train-and-test

答案 1 :(得分:0)

要将输出结果保存到文本文件中,请使用以下代码:

fileID = fopen('Output.txt','w');
fprintf(fileID,'%f\n',tr.perf);
fclose(fileID);

有关在matlab中的文本中写入数据或从中读取数据的更多信息,请参见以下链接: https://www.mathworks.com/help/matlab/import_export/writing-to-text-data-files-with-low-level-io.html

答案 2 :(得分:0)

mlp_ANN toolbax的所有结果都在工作区的tr变量中,您无需执行任何操作即可编写代码以获取每个时期的MSE。您需要做的就是在停止训练并打开首选项后进入工作区中的tr变量。并将其作为.txt文件复制到notpad。