void InitOutputPerceptrons(ANNSaveData savedata) { List <Perceptron> lastHiddenLayerPerceptrons = m_hiddenLayers[m_hiddenLayers.Count - 1].hiddenPerceptrons; for (int i = 0; i < nbOutputPerceptrons; i++) { Perceptron perceptron = new Perceptron(this); for (int j = 0; j < nbHiddenPerceptrons; j++) { Perceptron.Input input = new Perceptron.Input(); input.inputPerceptron = lastHiddenLayerPerceptrons[j]; if (savedata != null) { input.weight = savedata.hiddenLayerWeights[i].weightList[j]; } else { input.weight = Random.Range(-WeightRange, WeightRange); } perceptron.inputs.Add(input); } Perceptron.Input biasInput = new Perceptron.Input(); biasInput.inputPerceptron = bias; if (savedata != null) { List <float> weightList = savedata.hiddenLayerWeights[i].weightList; int lastIndex = weightList.Count - 1; biasInput.weight = weightList[lastIndex]; } else { biasInput.weight = Random.Range(-WeightRange, WeightRange); } perceptron.inputs.Add(biasInput); m_outputPerceptrons.Add(perceptron); } }
void InitHiddenPerceptrons(ANNSaveData savedata) { for (int layerIndex = 0; layerIndex < nbHiddenLayers; layerIndex++) { int nb; List <Perceptron> perceptronList; HiddenLayer layer; layer.hiddenPerceptrons = new List <Perceptron>(); if (layerIndex == 0) { nb = nbInputPerceptrons; perceptronList = m_inputPerceptrons; } else { nb = nbHiddenPerceptrons; perceptronList = m_hiddenLayers[layerIndex - 1].hiddenPerceptrons; } for (int i = 0; i < nbHiddenPerceptrons; i++) { Perceptron perceptron = new Perceptron(this); for (int j = 0; j < nb; j++) { Perceptron.Input input = new Perceptron.Input(); input.inputPerceptron = perceptronList[j]; if (savedata != null) { input.weight = savedata.inputLayerWeights[i].weightList[j]; } else { input.weight = Random.Range(-WeightRange, WeightRange); } perceptron.inputs.Add(input); } Perceptron.Input biasInput = new Perceptron.Input(); biasInput.inputPerceptron = bias; if (savedata != null) { List <float> weightList = savedata.inputLayerWeights[i].weightList; int lastIndex = weightList.Count - 1; biasInput.weight = weightList[lastIndex]; } else { biasInput.weight = Random.Range(-WeightRange, WeightRange); } perceptron.inputs.Add(biasInput); layer.hiddenPerceptrons.Add(perceptron); m_hiddenLayers.Add(layer); } } }