}
@Override
public void create(INeuralNetwork network, double[][][] initialWeights) {
weights = new HashMap<Integer, List<List<IWeight>>>();
ILayer currentLayer, previousLayer;
IWeight weight;
for (int layerIndex = 1; layerIndex < network.getLayersCount(); layerIndex++) {
previousLayer = network.getLayer(layerIndex - 1);
currentLayer = network.getLayer(layerIndex);
createListsForLayer(layerIndex, currentLayer);
for (int neuronIndex = 0; neuronIndex < currentLayer.getNeuronsCount(); neuronIndex++) {
createListForNeuron(layerIndex, previousLayer);
for (int previousNeuronIndex = 0; previousNeuronIndex <= previousLayer.getNeuronsCount(); previousNeuronIndex++) {
weight = new Weight();
try {
weight.setWeight(initialWeights[layerIndex - 1][neuronIndex][previousNeuronIndex]);