如何在for循环中更改属于类的变量? (JAVA)

时间:2018-01-10 14:58:20

标签: java for-loop neural-network

尝试编写代码以在神经网络中生成图层, 我只想弄清楚如何为属于Neuron本身的变量赋值。我的代码中标准Neuron的结构包含在一个名为XORNeuron的类中,我在FOR循环中调用此类,以便根据创建层时分配的神经元数量生成一定数量的神经元。

我正在使用一个数组来执行此操作,但是我想知道如何分配图层被告知它包含的每个神经元的输入数量。神经元的数量和输入的数量都是在调用图层构造函数时提供的参数,这意味着可以轻松创建新图层,并根据其大小和相对输入数量进行调整。

对于Neuron类本身的FOR循环中的每个输入,都会自动生成权重,具体取决于Neuron类保存的名为“numInputs”的变量。我正在尝试编写一个FOR循环,它将为该层所知的神经元数量生成一个新的Neuron实例,然后将输入的数量分配给Neuron类保存的“numInputs”变量,因此它将是能够正确生成权重。

我的代码是这样的:

public class XORlayer {

// Create a constructor to create layers of neurons.
// Means we only have to set it up once and can feed it
// settings from then on for tweaking.

XORlayer(int numNeurons,int inpNum) 
{
    XORNeuron[] layerLength = new XORNeuron[numNeurons];

    for(int neuCount = 1; neuCount <= numNeurons; neuCount++) 
    {
        layerLength[neuCount-1] = new XORNeuron();

    }
}

}

1 个答案:

答案 0 :(得分:1)

通过在创建的神经元中调用setter

XORNeuron[] layerLength = new XORNeuron[numNeurons];

    for(int neuCount = 0; neuCount < numNeurons; neuCount++) {
        layerLength[neuCount] = new XORNeuron();
        layerLength[neuCount].setNumInput(inpNum);
    }
}

或通过将输入计数添加到神经元构造函数中,因此可以执行

layerLength[neuCount] = new XORNeuron(inpNum);

(注意:我将数组索引更改为基于0的for循环,因为这是Java的惯用语。)