尝试编写代码以在神经网络中生成图层,
我只是想弄清楚如何为Neuron本身的变量赋值。我的代码中标准神经元的结构包含在一个名为XORNeuron的类中,我在FOR循环中调用该类,以便根据创建该层时为其分配的神经元数量来生成一定数量的神经元。
我正在使用数组来执行此操作,但是我想知道如何分配告诉该层包含的每个神经元的输入数量。神经元的数量和输入的数量都是在调用层构造函数时提供的参数,这意味着可以轻松创建新层并对其大小和相对输入数量进行调整。
权重都是根据Neuron类保存的称为“ numInputs”的变量自动为Neuron类本身的FOR循环中的每个输入生成的。我正在尝试编写一个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();
}
}
}
最佳答案
通过在创建的神经元中调用二传手
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中是惯用的)。