예제 #1
0
        //public static MultiLayeredPerceptronClassifier RESET
        //{
        //    get
        //    {
        //        lock (padlock)
        //        {
        //            instance = new MultiLayeredPerceptronClassifier(64, 10, 3, 52);
        //            instance.isTrained = false;
        //            return instance;
        //        }
        //    }
        //}

        /*
         * Load a MLP from a saved state from file.
         */
        public static void CreateFromFile(MLPState mstate)
        {
            lock (padlock)
            {
                if (instance == null)
                {
                    instance = new MultiLayeredPerceptronClassifier(64, 10, 3, 52);

                    instance.inputNeuronsArr  = mstate.inputNeuronsArr;
                    instance.hiddenNeuronsArr = mstate.hiddenNeuronsArr;
                    instance.outputNeuronsArr = mstate.outputNeuronsArr;
                    instance.weightsArr       = mstate.weightsArr;

                    instance.tempWeightsArr = mstate.tempWeightsArr;
                    instance.prevWeightsArr = mstate.prevWeightsArr;

                    instance.inputs        = mstate.inputs;
                    instance.outputs       = mstate.outputs;
                    instance.hiddenLayers  = mstate.hiddenLayers;
                    instance.hiddenNeurons = mstate.hiddenNeurons;

                    instance.meanSqErr = mstate.meanSqErr;
                    instance.epochs    = mstate.epochs;
                    instance.error     = mstate.error;

                    instance.isTrained = true;
                }
            }
        }
예제 #2
0
        private void saveMLPState(MultiLayeredPerceptronClassifier mlp, float accuracy)
        {
            MLPState mstate = new MLPState()
            {
                inputNeuronsArr  = mlp.inputNeuronsArr,
                hiddenNeuronsArr = mlp.hiddenNeuronsArr,
                outputNeuronsArr = mlp.outputNeuronsArr,
                weightsArr       = mlp.weightsArr,
                tempWeightsArr   = mlp.tempWeightsArr,
                prevWeightsArr   = mlp.prevWeightsArr,
                inputs           = mlp.inputs,
                outputs          = mlp.outputs,
                hiddenLayers     = mlp.hiddenLayers,
                hiddenNeurons    = mlp.hiddenNeurons,
                meanSqErr        = mlp.meanSqErr,
                epochs           = mlp.epochs,
                error            = mlp.error
            };

            // write the data (overwrites)
            using (var stream = new StreamWriter(MLP_STATE_FILE, append: false)) ///  + "_" + accuracy
            {
                stream.Write(JsonConvert.SerializeObject(mstate));
            }
        }
예제 #3
0
        private void loadMLPState()
        {
            using (var stream = new StreamReader(MLP_STATE_FILE))
            {
                MLPState mstate = JsonConvert.DeserializeObject <MLPState>(stream.ReadToEnd());

                // Load state from file.
                MultiLayeredPerceptronClassifier.CreateFromFile(mstate);
            }
        }