Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改属于for循环中类的变量?(爪哇)_Java_For Loop_Neural Network - Fatal编程技术网

Java 如何更改属于for循环中类的变量?(爪哇)

Java 如何更改属于for循环中类的变量?(爪哇),java,for-loop,neural-network,Java,For Loop,Neural Network,试图编写代码在神经网络中生成层, 我只是想知道如何给神经元本身的变量赋值。在我的代码中,一个标准神经元的结构包含在一个名为XORNeuron的类中,我在FOR循环中调用这个类,以便根据创建层时分配的神经元数量生成一定数量的神经元 我用一个数组来做这件事,但是我想知道如何分配这个层被告知它包含的每个神经元的输入数量。神经元的数量和输入的数量都是在调用层构造函数时提供的参数,这意味着可以轻松创建新层,并根据其大小和输入的相对数量进行调整 在神经元类自身的for循环中,根据神经元类持有的变量“numI

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

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

在神经元类自身的for循环中,根据神经元类持有的变量“numInputs”,权重都会自动为每个输入生成。我正在尝试编写一个FOR循环,它将为该层被告知拥有的神经元数量生成一个新的神经元实例,然后将输入数量分配给神经元类拥有的“numinput”变量,这样它就能够正确地生成权重

我的代码如下:

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();

    }
}

}
公共类XORlayer{
//创建一个构造函数来创建神经元层。
//这意味着我们只需要设置一次就可以给它喂食
//从那时起进行调整的设置。
XORlayer(int numNeurons,int inpNum)
{
XORNeuron[]layerLength=新的XORNeuron[numneuron];

对于(int neuCount=1;neuCount,可以通过调用已创建神经元中的setter

XORNeuron[] layerLength = new XORNeuron[numNeurons];

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

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

所以你要做的就是将你创建的
XORNeuron
numput
设置为
inpNum
中给出的值?是的,这是正确的。我只是不确定如何设置它,以便它为它创建的每个新XORNeuron执行它。谢谢你的帮助!当我真正去编辑代码时,我写
layerLe似乎很好ngth[neuCount-1].numInputs=inpNum;
这样可以吗,还是会导致问题?@JosephOliver是的,这是可行的。但是最好不要像
numInputs
那样有公共字段,因此
setNumInput()
在我的答案代码中。我在Neuron类中创建了一个setter,并像您在示例中所做的那样使用它。谢谢您的帮助!
layerLength[neuCount] = new XORNeuron(inpNum);