/// <summary> /// Opens the .ann file at the given location. /// </summary> /// <param name="path">The .ann file path.</param> /// <returns>The opened ANN (artifical neural network) file.</returns> public static AnnFile Open(string path) { var parts = path.Split('\\'); path = Path.HasExtension(path) ? Path.ChangeExtension(path, "ann") : $"{path}.ann"; path = parts.Count() != 1 ? path : Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), path); AnnFile annFile; using (StreamReader reader = new StreamReader(path)) { annFile = new AnnFile { Name = Regex.Replace(parts.Last(), @"\..*", ""), Activation = ReadActivationFunction(reader), InputNeurons = ReadUIntArray(reader), OutputNeurons = ReadUIntArray(reader), AdjacencyMatrix = ReadAdjacencyMatrix(reader) }; } return(annFile); }
/// <summary> /// Constructs a new instance of the <see cref="NeuralNetwork"/> class. /// </summary> /// <param name="annFile">The .ann file.</param> public NeuralNetwork(AnnFile annFile) : this(annFile.AdjacencyMatrix, annFile.InputNeurons, annFile.OutputNeurons, annFile.Activation) { }
/// <summary> /// Constructs a new instance of the <see cref="NeuralNetwork"/> class. /// </summary> /// <param name="path">The .ann file path.</param> public NeuralNetwork(string path) : this(AnnFile.Open(path)) { }