【问题标题】:Training using LM algorithm in Neural Network Toolbox in MATLAB在 MATLAB 的神经网络工具箱中使用 LM 算法进行训练
【发布时间】:2018-11-26 11:07:03
【问题描述】:

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

【问题讨论】:

  • 有代码可以分享吗?

标签: matlab neural-network


【解决方案1】:

如果您使用名为 net 的网络创建代码,则可以使用函数 [net tr] = train(net,x,t) 获取有关 MSE 的信息。 例如,如果我们将 simplefit_dataset 简单数据与简单网络一起使用,则结果在 tr.perf 上,它显示了训练数据的每个 epoch 的 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

【讨论】:

  • 我已经运行了您发送的示例代码,它确实绘制了具有迭代次数的 MSE。但是,当我尝试将“tr”文件保存为硬盘上的 .dat 文件时,我收到消息:“尝试将不受支持的数据类型写入 ASCII 文件。ariable 'tr' 未写入文件”。因此,我在训练期间将每个时期的 MSE 保存为硬盘上的 .dat 或 .txt 文件的问题仍未解决。但是,MATLAB 确实将此 tr 文件保存为具有 .mat 扩展名且大小为 1x1 的文件,我仍然不知道如何在计算机上的任何应用程序中打开此类文件。我会
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2018-11-26
      • 2010-11-20
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2013-01-13
      • 2015-08-13
      • 2015-06-03
      • 2017-10-25
      相关资源
      最近更新 更多