public static void Save(SimpleNeuralNetwork snn, String filepath) { if (!(snn.layers.Count > 0)) { throw new System.ArgumentException("La red neuronal necesita almenos una capa para poder operar."); } File.WriteAllText(filepath, JsonConvert.SerializeObject(snn, Formatting.Indented)); }
public static SimpleNeuralNetwork Load(String filepath) { SimpleNeuralNetwork snn = JsonConvert.DeserializeObject <SimpleNeuralNetwork>(File.ReadAllText(filepath)); // manualmente inicializa funciones activacion por que al deserializar solo traemos el enum snn.func = Activation.FunctionsLst[(int)snn.ActivationFunction].Item1; snn.dfunc = Activation.FunctionsLst[(int)snn.ActivationFunction].Item2; // incializa manualmente las matrices inputs, errors, outputs de cada layer foreach (SimpleNeuralLayer snl in snn.layers) { snl.inputs = new Matrix(snl.NoInputs, 1); snl.errors = new Matrix(snl.NoOutputs, 1); snl.outputs = new Matrix(snl.NoOutputs, 1); } return(snn); }