Java源码示例:org.neuroph.core.events.LearningEvent

示例1
@Override
public void learn(DataSet trainingSet) {
               
	for (int phase = 0; phase < 2; phase++) {
		for (int k = 0; k < iterations[phase]; k++) {
			Iterator<DataSetRow> iterator = trainingSet.iterator();
			while (iterator.hasNext() && !isStopped()) {
				DataSetRow trainingSetRow = iterator.next();
				learnPattern(trainingSetRow, nR[phase]);				
			} // while
			currentIteration = k;
                               fireLearningEvent(new LearningEvent(this, LearningEvent.Type.EPOCH_ENDED));
			if (isStopped()) return;
		} // for k
		learningRate = learningRate * 0.5;
	} // for phase
}
 
示例2
@Override
public final void learn(DataSet trainingSet) {
    setTrainingSet(trainingSet); // set this field here su subclasses can access it 
    onStart();

    while (!isStopped()) {
        beforeEpoch();
        doLearningEpoch(trainingSet);
        this.currentIteration++;
        afterEpoch();

        // now check if stop condition is satisfied
        if (hasReachedStopCondition()) {
            stopLearning();
        } else if (!iterationsLimited && (currentIteration == Integer.MAX_VALUE)) {
            // if counter has reached max value and iteration number is not limited restart iteration counter
            this.currentIteration = 1;
        }

        // notify listeners that epoch has ended
        fireLearningEvent(new LearningEvent(this, LearningEvent.Type.EPOCH_ENDED));

        // Thread safe pause when learning is paused
        if (this.pausedLearning) {
            synchronized (this) {
                while (this.pausedLearning) {
                    try {
                        this.wait();
                    } catch (Exception e) {
                    }
                }
            }
        }

    }
    onStop();
    fireLearningEvent(new LearningEvent(this, LearningEvent.Type.LEARNING_STOPPED));
}
 
示例3
/**
 * Runs one learning iteration with the specified training set and fires
 * event to notify observers. This method does the the doLearningEpoch() and in addtion
 * notifes observrs when iteration is done.
 *
 * @param trainingSet training set to learn
 */
public void doOneLearningIteration(DataSet trainingSet) {
    beforeEpoch();
    doLearningEpoch(trainingSet);
    afterEpoch();
    // notify listeners        
    fireLearningEvent(new LearningEvent(this, LearningEvent.Type.LEARNING_STOPPED)); 
}
 
示例4
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
        double error = bp.getTotalNetworkError();
        System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations, ");
        System.out.println("With total error: " + formatDecimalNumber(error));
    } else {
        System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());

    }
}
 
示例5
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
        double error = bp.getTotalNetworkError();
        System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations, ");
        System.out.println("With total error: " + formatDecimalNumber(error));
    } else {
        System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());
    }
}
 
示例6
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
        double error = bp.getTotalNetworkError();
        System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations, ");
        System.out.println("With total error: " + formatDecimalNumber(error));
    } else {
        System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());
    }
}
 
示例7
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
        double error = bp.getTotalNetworkError();
        System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations, ");
        System.out.println("With total error: " + formatDecimalNumber(error));
    } else {
        System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());
    }
}
 
示例8
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    LOG.info("Epoch no#: [{}]. Error [{}]", bp.getCurrentIteration(), bp.getTotalNetworkError());
    LOG.info("Epoch execution time: {} sec", (System.currentTimeMillis() - start) / 1000.0);
   // neuralNetwork.save(bp.getCurrentIteration() + "_MNIST_CNN-MIC.nnet");

    start = System.currentTimeMillis();
  //  if (bp.getCurrentIteration() % 5 == 0)
  //      Evaluation.runFullEvaluation(neuralNetwork, testSet);
}
 
示例9
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
        double error = bp.getTotalNetworkError();
        System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations, ");
        System.out.println("With total error: " + formatDecimalNumber(error));
    } else {
        System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());
    }
}
 
示例10
@Override
        public void handleLearningEvent(LearningEvent event) {
            BackPropagation bp = (BackPropagation) event.getSource();
            LOG.info("Current iteration: " + bp.getCurrentIteration());
            LOG.info("Error: " + bp.getTotalNetworkError());
            LOG.info("Calculation time: " + (System.currentTimeMillis() - start) / 1000.0);
         //   neuralNetwork.save(bp.getCurrentIteration() + "CNN_MNIST" + bp.getCurrentIteration() + ".nnet");
            start = System.currentTimeMillis();
//            NeuralNetworkEvaluationService.completeEvaluation(neuralNetwork, testSet);
        }
 
示例11
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
        double error = bp.getTotalNetworkError();
        System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations, ");
        System.out.println("With total error: " + formatDecimalNumber(error));
    } else {
        System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());
    }
}
 
示例12
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
        double error = bp.getTotalNetworkError();
        System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations, ");
        System.out.println("With total error: " + formatDecimalNumber(error));
    } else {
        System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());
    }
}
 
示例13
public static void main(String args[]) {

        //create training set from Data.DIGITS
        DataSet dataSet = generateTrainingSet();

        int inputCount = DigitData.CHAR_HEIGHT * DigitData.CHAR_WIDTH;
        int outputCount = DigitData.DIGITS.length;
        int hiddenNeurons = 19;

        //create neural network
        MultiLayerPerceptron neuralNet = new MultiLayerPerceptron(inputCount, hiddenNeurons, outputCount);
        //get backpropagation learning rule from network
        BackPropagation learningRule = neuralNet.getLearningRule();

        learningRule.setLearningRate(0.5);
        learningRule.setMaxError(0.001);
        learningRule.setMaxIterations(5000);

        //add learning listener in order to print out training info
        learningRule.addListener(new LearningEventListener() {
            @Override
            public void handleLearningEvent(LearningEvent event) {
                BackPropagation bp = (BackPropagation) event.getSource();
                if (event.getEventType().equals(LearningEvent.Type.LEARNING_STOPPED)) {
                    System.out.println();
                    System.out.println("Training completed in " + bp.getCurrentIteration() + " iterations");
                    System.out.println("With total error " + bp.getTotalNetworkError() + '\n');
                } else {
                    System.out.println("Iteration: " + bp.getCurrentIteration() + " | Network error: " + bp.getTotalNetworkError());
                }
            }
        });

        //train neural network
        neuralNet.learn(dataSet);

        //train the network with training set
        testNeuralNetwork(neuralNet, dataSet);

    }
 
示例14
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    LOG.info("Epoch no#: [{}]. Error [{}]", bp.getCurrentIteration(), bp.getTotalNetworkError());
    LOG.info("Epoch execution time: {} sec", (System.currentTimeMillis() - start) / 1000.0);
   // neuralNetwork.save(bp.getCurrentIteration() + "_MNIST_CNN-MIC.nnet");

    start = System.currentTimeMillis();
  //  if (bp.getCurrentIteration() % 5 == 0)
  //      Evaluation.runFullEvaluation(neuralNetwork, testSet);
}
 
示例15
protected synchronized void fireLearningEvent(LearningEvent evt) {
    for (LearningEventListener listener : listeners) {
      listener.handleLearningEvent(evt);
    }
}
 
示例16
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    foldErrors[bp.getCurrentIteration() - 1] += bp.getTotalNetworkError() / foldSize;
}
 
示例17
public void handleLearningEvent(LearningEvent event) {
SupervisedLearning rule = (SupervisedLearning)event.getSource();
System.out.println( "Training, Network Epoch " + rule.getCurrentIteration() + ", Error:" + rule.getTotalNetworkError());
  }
 
示例18
public void handleLearningEvent(LearningEvent event) {
SupervisedLearning rule = (SupervisedLearning)event.getSource();
System.out.println( "Training, Network Epoch " + rule.getCurrentIteration() + ", Error:" + rule.getTotalNetworkError());
  }
 
示例19
@Override
public void handleLearningEvent(LearningEvent event) {
}
 
示例20
@Override
public void handleLearningEvent(LearningEvent le) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
 
示例21
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation)event.getSource();
    if (event.getEventType() != LearningEvent.Type.LEARNING_STOPPED)
        System.out.println(bp.getCurrentIteration() + ". iteration : "+ bp.getTotalNetworkError());
}
 
示例22
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation)event.getSource();
    if (event.getEventType() != LearningEvent.Type.LEARNING_STOPPED)
        System.out.println(bp.getCurrentIteration() + ". iteration : "+ bp.getTotalNetworkError());
}
 
示例23
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation)event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration : "+ bp.getTotalNetworkError());
}
 
示例24
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration | Total network error: " + bp.getTotalNetworkError());
}
 
示例25
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration | Total network error: " + bp.getTotalNetworkError());
}
 
示例26
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration | Total network error: " + bp.getTotalNetworkError());
}
 
示例27
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration | Total network error: " + bp.getTotalNetworkError());
}
 
示例28
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration | Total network error: " + bp.getTotalNetworkError());
}
 
示例29
@Override
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration | Total network error: " + bp.getTotalNetworkError());
}
 
示例30
public void handleLearningEvent(LearningEvent event) {
    BackPropagation bp = (BackPropagation) event.getSource();
    System.out.println(bp.getCurrentIteration() + ". iteration | Total network error: " + bp.getTotalNetworkError());
}