尝试编写代码来生成神经网络中的层, 我只是想弄清楚如何为属于神经元本身的变量赋值。我的代码中标准神经元的结构包含在一个名为 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();
}
}
}
最佳答案
通过在创建的神经元中调用 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 来说是惯用的)。
关于java - 如何在 for 循环中更改属于某个类的变量? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48190181/