createLayers method

List<Layer> createLayers()

Implementation

List<Layer> createLayers() {
  Layer previousLayer = inputLayer;
  List<Layer> hiddenLayers = [];

  for (int i = 0; i < hiddenLayerCount; i++) {
    List<Neuron> neuronList = [];
    for (int j = 0; j < hiddenLayerNeuronCount; j++) {
      Neuron neuron = Neuron(value: 0.0);
      neuronList.add(neuron);
    }
    Layer layer = Layer.hidden(
      previousLayer: previousLayer,
      nextLayer: null,
      neurons: neuronList,
    );
    if (i == hiddenLayerCount - 1) {
      layer.nextLayer = outputLayer;
    }

    previousLayer.nextLayer ??= layer;

    hiddenLayers.add(layer);
    previousLayer = layer;
  }
  List<Layer> layers = [];
  outputLayer.previousLayer = hiddenLayers.last;
  layers.add(inputLayer);
  layers.addAll(hiddenLayers);
  layers.add(outputLayer);
  return layers;
}