Beispiel #1
0
            /*************************************************************************
            Serializer: unserialization

              -- ALGLIB --
                 Copyright 14.03.2011 by Bochkanov Sergey
            *************************************************************************/
            public static void mlpunserialize(alglib.serializer s,
                multilayerperceptron network) {
                int i0 = 0;
                int i1 = 0;
                int i = 0;
                int j = 0;
                int k = 0;
                int fkind = 0;
                double threshold = 0;
                double v0 = 0;
                double v1 = 0;
                int nin = 0;
                int nout = 0;
                bool issoftmax = new bool();
                int[] layersizes = new int[0];


                //
                // check correctness of header
                //
                i0 = s.unserialize_int();
                ap.assert(i0 == scodes.getmlpserializationcode(), "MLPUnserialize: stream header corrupted");
                i1 = s.unserialize_int();
                ap.assert(i1 == mlpfirstversion, "MLPUnserialize: stream header corrupted");

                //
                // Create network
                //
                issoftmax = s.unserialize_bool();
                apserv.unserializeintegerarray(s, ref layersizes);
                ap.assert((ap.len(layersizes) == 2 | ap.len(layersizes) == 3) | ap.len(layersizes) == 4, "MLPUnserialize: too many hidden layers!");
                nin = layersizes[0];
                nout = layersizes[ap.len(layersizes) - 1];
                if(ap.len(layersizes) == 2) {
                    if(issoftmax) {
                        mlpcreatec0(layersizes[0], layersizes[1], network);
                    } else {
                        mlpcreate0(layersizes[0], layersizes[1], network);
                    }
                }
                if(ap.len(layersizes) == 3) {
                    if(issoftmax) {
                        mlpcreatec1(layersizes[0], layersizes[1], layersizes[2], network);
                    } else {
                        mlpcreate1(layersizes[0], layersizes[1], layersizes[2], network);
                    }
                }
                if(ap.len(layersizes) == 4) {
                    if(issoftmax) {
                        mlpcreatec2(layersizes[0], layersizes[1], layersizes[2], layersizes[3], network);
                    } else {
                        mlpcreate2(layersizes[0], layersizes[1], layersizes[2], layersizes[3], network);
                    }
                }

                //
                // Load neurons and weights
                //
                for(i = 1; i <= ap.len(layersizes) - 1; i++) {
                    for(j = 0; j <= layersizes[i] - 1; j++) {
                        fkind = s.unserialize_int();
                        threshold = s.unserialize_double();
                        mlpsetneuroninfo(network, i, j, fkind, threshold);
                        for(k = 0; k <= layersizes[i - 1] - 1; k++) {
                            v0 = s.unserialize_double();
                            mlpsetweight(network, i - 1, k, i, j, v0);
                        }
                    }
                }

                //
                // Load standartizator
                //
                for(j = 0; j <= nin - 1; j++) {
                    v0 = s.unserialize_double();
                    v1 = s.unserialize_double();
                    mlpsetinputscaling(network, j, v0, v1);
                }
                for(j = 0; j <= nout - 1; j++) {
                    v0 = s.unserialize_double();
                    v1 = s.unserialize_double();
                    mlpsetoutputscaling(network, j, v0, v1);
                }
            }
Beispiel #2
0
            /*************************************************************************
            Unserialization: complex value
            *************************************************************************/
            public static complex unserializecomplex(alglib.serializer s) {
                complex result = 0;

                result.x = s.unserialize_double();
                result.y = s.unserialize_double();
                return result;
            }
Beispiel #3
0
            /*************************************************************************
            Unserialization: complex value
            *************************************************************************/
            public static void unserializerealarray(alglib.serializer s,
                ref double[] v) {
                int n = 0;
                int i = 0;
                double t = 0;

                v = new double[0];

                n = s.unserialize_int();
                if(n == 0) {
                    return;
                }
                v = new double[n];
                for(i = 0; i <= n - 1; i++) {
                    t = s.unserialize_double();
                    v[i] = t;
                }
            }
Beispiel #4
0
            /*************************************************************************
            Unserialization: complex value
            *************************************************************************/
            public static void unserializerealmatrix(alglib.serializer s,
                ref double[,] v) {
                int i = 0;
                int j = 0;
                int n0 = 0;
                int n1 = 0;
                double t = 0;

                v = new double[0, 0];

                n0 = s.unserialize_int();
                n1 = s.unserialize_int();
                if(n0 == 0 | n1 == 0) {
                    return;
                }
                v = new double[n0, n1];
                for(i = 0; i <= n0 - 1; i++) {
                    for(j = 0; j <= n1 - 1; j++) {
                        t = s.unserialize_double();
                        v[i, j] = t;
                    }
                }
            }