Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package zadanie2;
- import Warstwy.WielowarstwowyPerceptron;
- import java.text.NumberFormat;
- import java.util.ArrayList;
- /**
- *
- * @author wespit
- */
- public class Main {
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- float krokNauki = 0.7f; // krok nauki
- float momentum = 0.5f; // momentu - jak nie ma być używane to dać na 0.0f
- boolean bias = false; // czy stosować bias
- float blad = 0;
- int[] liczbaNeuronkow = new int[]{4, 2, 4}; // liczby neurownow w poszczegolnych warstwach
- ArrayList<Float> wejscie = new ArrayList<Float>(); // dane wejsciowe
- wejscie.add(1.0f);
- wejscie.add(0.0f);
- wejscie.add(0.0f);
- wejscie.add(0.0f);
- ArrayList<Float> wyjscie = new ArrayList<Float>(); // dane wyjsciowe
- wyjscie.add(1.0f);
- wyjscie.add(0.0f);
- wyjscie.add(0.0f);
- wyjscie.add(0.0f);
- // liczba warstw, tablica z liczba neronow w kazdej warswie , czy stosowac bias
- WielowarstwowyPerceptron perceptron = new WielowarstwowyPerceptron(3, liczbaNeuronkow, false);
- float[] wyjscieV = null;
- for (int i = 0; i < 40; i++) {
- perceptron.perceptronWejscie(wejscie); // wrzucenie danych wejsciowych na perceptron
- perceptron.liczSumy(); // liczy sumy kazdej warstwy
- perceptron.liczDelty(wyjscie); // propaguje blad wstecz i liczy delty
- wyjscieV = perceptron.liczWyjscia(); // liczy wyjscie
- perceptron.zmienWagi(krokNauki, momentum); // zmienia wagi po propagacji wstecznej
- }
- for (int k = 0; k < wyjscieV.length; k++) {
- blad = blad + (wyjscieV[k] - wyjscie.get(k)) * (wyjscieV[k] - wyjscie.get(k));
- }
- NumberFormat nf = NumberFormat.getInstance();
- nf.setMinimumFractionDigits(3);
- System.out.println("########################");
- for (int i = 1; i < perceptron.warstwy.size(); i++) {
- System.out.println("Warstwa " + (i + 1));
- System.out.println("########################");
- for (int j = 0; j < perceptron.warstwy.get(i).neuronki.size(); j++) {
- System.out.println("Otrzymane wagi dla neuronu " + (j + 1));
- for (int m = 0; m < perceptron.warstwy.get(i).neuronki.get(j).wagi.length; m++) {
- System.out.print(String.valueOf(nf.format(perceptron.warstwy.get(i).neuronki.get(j).wagi[m])) + " ");
- }
- System.out.println();
- }
- System.out.println("########################");
- }
- for (int i = 0; i < wyjscieV.length; i++) {
- System.out.println("wyjscie " + i + " : " + wyjscieV[i]);
- }
- blad = blad * (float) (1.0 / 2.0);
- System.out.println("blad: " + nf.format(blad));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement