尝试编写代码以在神经网络中生成图层, 我只想弄清楚如何为属于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();
}
}
}
答案 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的惯用语。)