0

ニューロン、レイヤー、ネットワークの 3 つのクラスがあります。

レイヤーにはニューロンのコレクションが含まれ、ネットワークにはレイヤーのコレクションが含まれます。

ニューロンには、入力 (Double) のコレクションと 1 つの出力 (Double) のみ (属性) があります。

私が持っているネットワーククラス内:

private ArrayList<Layer> layers;

レイヤー内のすべてのレイヤーと、現在のレイヤーのニューロン内のすべてのニューロンを循環し、すべてのレイヤーを通過するまで、個々の出力を次のレイヤーのすべてのニューロンの入力として設定したいと思います。

これを達成しようとする次の方法があります。

public void execute(){

    //Connecting Network
    for (Layer l : layers){
        int counter = 0;
        while (counter < layers.size()){

            for (Neuron n: l.neurons ){
                neuronOfNextLayer.addInputs(neuronOfPreviousLyaer.output);
            }
            counter++;
        }
    }


}

さて、どのように交換しますか

neuronOfNextLayer.addInputs(neuronOfPreviousLyaer.output);

レイヤー内のすべてのレイヤーの出力を実際に通過し、次のレイヤーのすべてのニューロンの入力として設定する何かのループの一部ですか?

4

1 に答える 1

1

クラス「Neuron」にフィールド変数「Inputs」がすでにあると仮定します。

したがって、コード neuronOfNextLayer.addInputs(neuronOfPreviousLyaer.output); を置き換えることができます。

と:

Layer nextLayer =layers.get(counter +1);
List<Neuron> nextNeuron=nextLayer.getNeurons();

nextNeuron.get(counter2).inputs=n.output;  //Counter 2 is the new counter you should keep in second for each Loop

これで問題が解決しない場合は、質問を明確にしてください。

于 2013-02-04T04:31:17.180 に答える