Пример #1
0
        public override void Load(BinaryReader reader)
        {
            string s;

            BinIO.string_read(reader, out s);
            if (s == "<object>")
            {
                // load lenet arguments
                int nclasses;
                BinIO.scalar_read(reader, out nclasses);
                lenetWrap.Classes = new int[nclasses];
                for (int i = 0; i < nclasses; i++)
                {
                    BinIO.scalar_read(reader, out lenetWrap.Classes[i]);
                }
                byte boolval;
                BinIO.scalar_read(reader, out boolval);
                lenetWrap.TanhSigmoid = Convert.ToBoolean(boolval);
                BinIO.scalar_read(reader, out boolval);
                lenetWrap.NetNorm = Convert.ToBoolean(boolval);
                BinIO.scalar_read(reader, out boolval);
                lenetWrap.AsciiTarget = Convert.ToBoolean(boolval);

                // load Narray from stream
                BinIO.narray_read(reader, lenetparam);
                double[] dbuffer = lenetparam.To1DArray();

                Global.Debugf("info", "loading " + Name + "..");

                // create lenet
                if (lenetWrap.IsEmpty)
                {
                    lenetWrap.CreateLenet(lenetWrap.Classes.Length, lenetWrap.Classes, lenetWrap.TanhSigmoid, lenetWrap.NetNorm, lenetWrap.AsciiTarget);
                }

                // send loaded buffer to created lenet
                lenetWrap.LoadNetworkFromBuffer(dbuffer, dbuffer.Length);
                BinIO.string_read(reader, out s);
                if (s != "</object>")
                {
                    throw new Exception("Expected string: </object>");
                }
            }
        }