//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; } } }
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)); } }
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); } }