【问题标题】:How to feed with 2 or more inputs a Neural Network in Matlab如何在 Matlab 中输入 2 个或更多输入的神经网络
【发布时间】:2011-06-11 01:18:04
【问题描述】:

我想为神经网络提供多个输入(使用 Matlab 工具箱)。

如果我将输入向量声明为P = [1 2 3 4; 1 2 3 4; 1 2 3 4;1 2 3 4],将目标声明为T = [1 2 3 4],然后将网络声明为net = newff(P,T,1);,当我查看网络参数时,它显示为numInputs: 1,而在我的脑海中输入的数量应该是 3(每行一个)。

我的问题是:如何为网络提供 3 个独立的输入?

提前致谢, 问候 G.B.

【问题讨论】:

    标签: matlab neural-network


    【解决方案1】:

    你要区分以下参数:

    1. 神经网络输入向量的维度。在您的示例中,第一层有一个维度为4 的输入向量。该参数在 Matlab 的文档中称为 R
    2. 网络不同输入的数量,即有多少向量输入到网络。来自Neural Network Toolbox doc's

      net.numInputs 该属性定义 网络的输入数量 收到。它可以设置为 0 或 正整数。 澄清: 网络输入的数量和大小 网络输入的不一样 事物。输入的数量定义 网络有多少组向量 接收作为输入。每个的大小 输入(即,元素的数量 每个输入向量)由下式确定 输入大小(net.inputs{i}.size)。 大多数网络只有一个输入, 其大小由 问题。

    3. 提供给网络的输入样本数。在您的示例中,您有 3 个 4 维向量样本。

    考虑到这一点,如果您打算向网络提供 3 个样本,那么您的代码就可以了。另一方面,如果您确实需要3 组不同的输入,您可以手动更改网络中的numInputs 参数,或者您可以创建自定义网络:

    net = network(numInputs,numLayers,biasConnect,inputConnect, layerConnect,outputConnect);
    

    根据需要使用输入数量numInputs,但您需要自己自定义。你可以在这里阅读更多信息:http://www.mathworks.com/help/toolbox/nnet/network.html#667825

    【讨论】:

    • 感谢您的帮助 Itamar,只是一个澄清。我认为输入实例是按列放置的。例如1;1;1;1是4个元素的输入实例(即输入大小为4),而输出按行放置。
    • 按列输入实例/样本,所以每一列确实是一个输入实例。但是网络参数numInputs 的意思是,不是“输入维度”也不是“输入样本数”。
    • 好的,现在我看到了困惑:在您的问题中,您的矩阵是 4x4。如果你想要 3 个样本,每个样本有 4 个元素,你的输入应该是 4x3。
    猜你喜欢
    • 2015-12-21
    • 2010-12-02
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多