在MATLAB中使用for循环进行函数拟合神经网络

我使用的是MATLAB R2014a版本。

我有十组Xy数据的集群。

我想使用MATLAB中的神经网络工具来拟合这10组对应的数据模型,并希望将这10个不同的模型保存到某个地方。

对于每个集群,我需要设计一个实现来确定隐藏层的正确数量。我将每个模型保存到一个数组或类似的东西中,然后继续处理第二个集群。

为此,我开发了以下算法:

for q = 1:z                             % 集群数量
    mdl  = fitnet( 10 );
    mdl  = train( mdl, X( classes == q ), y( classes == q ) );
    view( mdl );
    yy   = net( X( classes == q ) );
    perf = perform( net, yy, y( classes == q ) );
    model( q ).mdl = mdl;
    clear mdl;
end

当我运行这段代码时,我得到了以下错误:

Error using view (line 67)
Invalid input arguments
Error in Main (line 97)
    view(mdl);

我该如何解决这个问题?

谢谢,


回答:

正如评论中提到的,view()确实是这里正确的选择,因为它已经被重载以显示神经网络的草图(参见:http://www.mathworks.com/help/nnet/ref/view.html)。

因此,问题显然不在view()本身,而在于你的mdl网络,这意味着你应该:

  • 使用调试器检查它是否真的是一个神经网络,并且是否包含值
  • 检查这些值,因为X和y可能不是你想要的向量(你也应该检查这一点)

…和/或发布更多关于你的代码中发生的事情的信息。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注