public NetworkData GetNetworkData() { List <ConnectionData> conns = new List <ConnectionData>(); List <LayerData> lays = new List <LayerData>(); foreach (Layer layer in Layers) { LayerData newlayerData = new LayerData() { NumNeuron = layer.NumNeurons, ActType = layer.ActType, Bias = new List <double>() }; int layerid = layer.Index; foreach (Neuron neuron in layer.Neurons) { int neuronid = neuron.Index; newlayerData.Bias.Add(neuron.Bias); foreach (Connection conn in neuron.Connections.Where(r => r.fromNeuron == neuron)) { conns.Add(new ConnectionData() { From = new NeuronData() { Layer = layerid, Node = neuronid }, To = new NeuronData() { Layer = conn.toNeuron.SelfLayer.Index, Node = conn.toNeuron.Index }, Weight = conn.Weight }); } } lays.Add(newlayerData); } return(new NetworkData() { Connections = conns, InputLayerId = InputIndex, OutputLayerId = OutputIndex, Layers = lays }); }
public NetworkData GetNetworkData() { List<ConnectionData> conns = new List<ConnectionData>(); List<LayerData> lays = new List<LayerData>(); foreach (Layer layer in Layers) { LayerData newlayerData = new LayerData() { NumNeuron = layer.NumNeurons, ActType = layer.ActType, Bias = new List<double>() }; int layerid = layer.Index; foreach (Neuron neuron in layer.Neurons) { int neuronid = neuron.Index; newlayerData.Bias.Add(neuron.Bias); foreach (Connection conn in neuron.Connections.Where(r => r.fromNeuron == neuron)) { conns.Add(new ConnectionData() { From = new NeuronData() { Layer = layerid, Node = neuronid }, To = new NeuronData() { Layer = conn.toNeuron.SelfLayer.Index, Node = conn.toNeuron.Index }, Weight = conn.Weight }); } } lays.Add(newlayerData); } return new NetworkData() { Connections = conns, InputLayerId = InputIndex, OutputLayerId = OutputIndex, Layers = lays }; }