/**
   * This method is executed when learning starts, before the first epoch. Used for initialisation.
   */
  @Override
  protected void onStart() {
    super.onStart();

    if (this.iterationsLimited) {
      this.stopConditions.add(new MaxIterationsStop(this));
    }

    this.currentIteration = 0;
  }
 @Override
 public void setNeuralNetwork(NeuralNetwork neuralNetwork) {
   super.setNeuralNetwork(neuralNetwork);
   int neuronsNum = neuralNetwork.getLayerAt(1).getNeuronsCount();
   mapSize = (int) Math.sqrt(neuronsNum);
 }