private void SaveLayer(Hashtable neuronInvMap, Layer layer, NeuralDataSet.NetworksRow networkRow) { NeuralDataSet.LayersRow layerRow = database.Layers.AddLayersRow(networkRow, layer.Title); for (int i = 0; i < layer.Count; i++) { neuronInvMap.Add(layer[i], database.Neurons.AddNeuronsRow(layerRow)); } }
private void SaveLayerAsCurrent(Hashtable neuronInvMap, Layer layer, NeuralDataSet.NetworksRow networkRow) { NeuralDataSet.LayersRow layerRow = database.Layers.AddLayersRow(networkRow, layer.Title); for (int i = 0; i < layer.Count; i++) { NeuralDataSet.NeuronsRow row = database.Neurons.AddNeuronsRow(layerRow); neuronInvMap.Add(layer[i], row); currentNeuronMap.Add(row.neID, layer[i]); } }
/// <summary> /// Load a network from the repository by its repository title. /// </summary> /// <param name="title">The network's repository title</param> public void LoadNetworkStructure(string title) { NeuralDataSet.NetworksRow[] rows = (NeuralDataSet.NetworksRow[])database.Networks.Select("nw_name LIKE '" + title.Trim() + "'"); if (rows.Length == 0) { throw new ArgumentOutOfRangeException("title", title, "Network not found"); } currentNetworkRow = rows[0]; RebuildCurrentNetworkStructure(); }
/// <summary> /// Load a network from the repository by its repository ID. /// </summary> /// <param name="networkID">The network's repository ID</param> public void LoadNetworkStructure(int networkID) { NeuralDataSet.NetworksRow[] rows = (NeuralDataSet.NetworksRow[])database.Networks.Select("nwID = " + networkID); if (rows.Length != 1) { throw new ArgumentOutOfRangeException("networkId", networkID, "Network not found"); } currentNetworkRow = rows[0]; RebuildCurrentNetworkStructure(); }
/// <summary> /// Import a network to the repository and name it with a new repository title. /// </summary> /// <param name="title">The new network's repository title (choosable).</param> /// <param name="network">The neural network instance to import.</param> /// <param name="setAsCurrent">Whether the network should be marked as the current network.</param> /// <returns>The new network's repository ID</returns> public int ImportNetworkStructure(string title, Network network, bool setAsCurrent) { NeuralDataSet.NetworksRow row = database.Networks.AddNetworksRow(title); if (setAsCurrent) { SaveNetworkStructureAsCurrent(row, network); currentNetwork = network; currentNetworkRow = row; } else { SaveNetworkStructure(row, network); } return(row.nwID); }
private void SaveNetworkStructure(NeuralDataSet.NetworksRow networkRow, Network network) { Hashtable neuronInvMap = new Hashtable(); Layer layer = network.FirstLayer; SaveLayer(neuronInvMap, layer, networkRow); while (layer.TargetLayer != null) { layer = layer.TargetLayer; SaveLayer(neuronInvMap, layer, networkRow); } foreach (Neuron neuron in neuronInvMap.Keys) { foreach (Synapse synapse in neuron.SourceSynapses) { database.Synapses.AddSynapsesRow((NeuralDataSet.NeuronsRow)neuronInvMap[synapse.SourceNeuron], (NeuralDataSet.NeuronsRow)neuronInvMap[neuron], networkRow); } } }
private NeuralDataSet.SynapsesRow[] SelectSynapsesFromNetwork(NeuralDataSet.NetworksRow network) { return((NeuralDataSet.SynapsesRow[])database.Synapses.Select("syFK_network = " + network.nwID)); }
private NeuralDataSet.LayersRow[] SelectLayersFromNetwork(NeuralDataSet.NetworksRow network) { return((NeuralDataSet.LayersRow[])database.Layers.Select("laFK_network = " + network.nwID)); }
/// <summary> /// Load a network from the repository by its repository title. /// </summary> /// <param name="title">The network's repository title</param> public void LoadNetworkStructure(string title) { NeuralDataSet.NetworksRow[] rows = (NeuralDataSet.NetworksRow[])database.Networks.Select("nw_name LIKE '" + title.Trim() + "'"); if(rows.Length == 0) throw new ArgumentOutOfRangeException("title",title,"Network not found"); currentNetworkRow = rows[0]; RebuildCurrentNetworkStructure(); }
/// <summary> /// Load a network from the repository by its repository ID. /// </summary> /// <param name="networkID">The network's repository ID</param> public void LoadNetworkStructure(int networkID) { NeuralDataSet.NetworksRow[] rows = (NeuralDataSet.NetworksRow[])database.Networks.Select("nwID = " + networkID); if(rows.Length != 1) throw new ArgumentOutOfRangeException("networkId",networkID,"Network not found"); currentNetworkRow = rows[0]; RebuildCurrentNetworkStructure(); }
/// <summary> /// Import a network to the repository and name it with a new repository title. /// </summary> /// <param name="title">The new network's repository title (choosable).</param> /// <param name="network">The neural network instance to import.</param> /// <param name="setAsCurrent">Whether the network should be marked as the current network.</param> /// <returns>The new network's repository ID</returns> public int ImportNetworkStructure(string title, Network network, bool setAsCurrent) { NeuralDataSet.NetworksRow row = database.Networks.AddNetworksRow(title); if(setAsCurrent) { SaveNetworkStructureAsCurrent(row, network); currentNetwork = network; currentNetworkRow = row; } else SaveNetworkStructure(row, network); return row.nwID; }