Advertisements

Archive

Archive for the ‘Programmēšana’ Category

Kā hostēt git

27 augusts, 2011. Komentēt

Lai gan @github ir ērts un pieņemams risinājums publiskiem .git repozitorijiem, (nav ne jausmas kā to pareizi dēvēt latviešu valodā) izmantot GitHub, lai hostētu kodu kas nav paredzēts publiskošanai, kā arī komerciāliem projektiem labāk pamēģināt @beanstalkapp. Tas ir ērts, drošs un pieejams risinājums, + čaļi @wildbit regulāri atjaunina un uzlabo savus produktus ņemot vērā jaunākās tendences programmēšanā. Papildus tam, kodu iespējams menedžēt arī no Android, iPhone un iPad.

Izmantojot šo saiti bnst.lk/p8vhAe. ietaupīsi 10% pirmajam mēnesim ;)

Advertisements

Neirālais tīkls (programmēšana Java platformā)

12 novembris, 2009. Komentēt

Image via Wikipedia

Piedāvāju interesentiem savu pamatkodu neirālā tīkla implementācijai Java SE6,

package neuralnetwork;

public class NNx {

    public NNx() {
        w = new float[2];
        x = new float[4][2];
        s = new float[4][2];
        t = new float[4];

    }

    private void Initialization() {
        System.out.println("Giving input values");
        System.out.println("");
        //i integrated AND logical statement
        //i dont know why, but it didnt worked till i defined it for t[0],t[1],t[2],t[3]
        s[0][0] = 0;
        s[0][1] = 0;
        t[0] = -1;
        s[1][0] = 1;
        s[1][1] = 0;
        t[1] = -1;
        s[2][0] = 0;
        s[2][1] = 1;
        t[2] = -1;
        s[3][0] = 1;
        s[3][1] = 1;
        t[3] = 1;
        for (int i = 0; i < w.length; i++) {
            w[i] = (float)Math.random();
        }

        b = 1;
    }

    private void Training() {
        float sum = 0;

        for (int i = 0; i < x.length; i++) {
            for (int j = 0; j < x[i].length; j++) {
                x[i][j] = s[i][j];

            }

        }
        System.out.println("Network training in progress :");
        System.out.println("");

        for (iteration = 0; iteration < max_iteration; iteration++) {

            System.out.println("step " + (iteration + 1) + " done");
            for (int i = 0; i < x.length; i++) {

                sum = 0;
                for (int j = 0; j < x[i].length; j++) {
                    sum += x[i][j] * w[j];
                }
                y_in = b + sum;
                if (y_in >= threshold) {
                    y = 1;
                } else if (y_in < threshold) {
                    y = -1;
                }

                if (y != t[i]) {
                    for (int j = 0; j < w.length; j++) {
                        w[j] = w[j] + (learn_rate * t[i] * x[i][j]);
                    }
                    b = b + learn_rate * t[i];

                }
            }
        }
        System.out.println("");
        System.out.println("Solution has been found");
        System.out.println("");
    }

    private void Results() {
        float sum = 0;
        float[] res_output = new float[4];

        for (int i = 0; i < x.length; i++) {
            for (int j = 0; j < x[i].length; j++) {
                x[i][j] = s[i][j];
            }
        }

        System.out.println("Results : (for checking)");
        for (int i = 0; i < x.length; i++) {
            sum = 0;
            for (int j = 0; j < x[i].length; j++) {
                sum += x[i][j] * w[j];
            }
            y_in = b + sum;
            if (y_in >= threshold) {
                y = 1;
            } else if (y_in < threshold) {
                y = -1;
            }
            if (y == -1) {
                res_output[i] = 0;
            } else {
                res_output[i] = 1;
            }

        }
        System.out.println("");
        System.out.println("0 AND 0 = " + res_output[0]);
        System.out.println("0 AND 1 = " + res_output[1]);
        System.out.println("1 AND 0 = " + res_output[2]);
        System.out.println("1 AND 1 = " + res_output[3]);
    }

    public void RunPerceptron() {
        learn_rate = (float) 0.5;
        threshold = (float) 0.2;
        max_iteration = 10;
        Initialization();
        Training();
        Results();
    }

    public static void main(String[] args) {
        NNx perceptron = new NNx();
        perceptron.RunPerceptron();
    }
    private float[] w;
    private float b;
    private float[][] x;
    private float[][] s;
    private float y;
    private float learn_rate;
    private float threshold;
    private float[] t;
    private float y_in;
    private int iteration;
    private int max_iteration;
}

Tātad tīkls atrisina elementāru AND funkciju izmantojot leraning algoritmu un single – layer elementus. PM ja ir kādi jautājumi, kodu var droši pārizmantot ;)

Reblog this post [with Zemanta]