Class Network
- java.lang.Object
-
- org.apache.commons.math4.neuralnet.Network
-
-
Constructor Summary
Constructors Constructor Description Network(long firstId, int featureSize)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addLink(Neuron a, Neuron b)
Adds a link from neurona
to neuronb
.Network
copy()
Performs a deep copy of this instance.long
createNeuron(double[] features)
Creates a neuron and assigns it a unique identifier.void
deleteLink(Neuron a, Neuron b)
Deletes the link between neuronsa
andb
.void
deleteNeuron(Neuron neuron)
Deletes a neuron.static Network
from(int featureSize, long[] idList, double[][] featureList, long[][] neighbourIdList)
Builds a network from a list of neurons and their neighbours.int
getFeaturesSize()
Gets the size of the neurons' features set.Collection<Neuron>
getNeighbours(Iterable<Neuron> neurons)
Retrieves the neurons in the neighbourhood of any neuron in theneurons
list.Collection<Neuron>
getNeighbours(Iterable<Neuron> neurons, Iterable<Neuron> exclude)
Retrieves the neurons in the neighbourhood of any neuron in theneurons
list.Collection<Neuron>
getNeighbours(Neuron neuron)
Retrieves the neighbours of the given neuron.Collection<Neuron>
getNeighbours(Neuron neuron, Iterable<Neuron> exclude)
Retrieves the neighbours of the given neuron.Neuron
getNeuron(long id)
Retrieves the neuron with the given (unique)id
.Collection<Neuron>
getNeurons()
Iterator<Neuron>
iterator()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
Network
public Network(long firstId, int featureSize)
- Parameters:
firstId
- Identifier of the first neuron that will be added to this network.featureSize
- Size of the neuron's features.
-
-
Method Detail
-
from
public static Network from(int featureSize, long[] idList, double[][] featureList, long[][] neighbourIdList)
Builds a network from a list of neurons and their neighbours.- Parameters:
featureSize
- Number of features.idList
- List of neuron identifiers.featureList
- List of neuron features.neighbourIdList
- Links associated to each of the neurons inidList
.- Returns:
- a new instance.
- Throws:
IllegalArgumentException
- if an inconsistency is detected.
-
copy
public Network copy()
Performs a deep copy of this instance. Upon return, the copied and original instances will be independent: Updating one will not affect the other.- Returns:
- a new instance with the same state as this instance.
- Since:
- 3.6
-
getNeurons
public Collection<Neuron> getNeurons()
- Returns:
- a shallow copy of the network's neurons.
-
createNeuron
public long createNeuron(double[] features)
Creates a neuron and assigns it a unique identifier.- Parameters:
features
- Initial values for the neuron's features.- Returns:
- the neuron's identifier.
- Throws:
IllegalArgumentException
- if the length offeatures
is different from the expected size (as set by theconstructor
).
-
deleteNeuron
public void deleteNeuron(Neuron neuron)
Deletes a neuron. Links from all neighbours to the removed neuron will also bedeleted
.- Parameters:
neuron
- Neuron to be removed from this network.- Throws:
NoSuchElementException
- ifn
does not belong to this network.
-
getFeaturesSize
public int getFeaturesSize()
Gets the size of the neurons' features set.- Returns:
- the size of the features set.
-
addLink
public void addLink(Neuron a, Neuron b)
Adds a link from neurona
to neuronb
. Note: the link is not bi-directional; if a bi-directional link is required, an additional call must be made witha
andb
exchanged in the argument list.- Parameters:
a
- Neuron.b
- Neuron.- Throws:
NoSuchElementException
- if the neurons do not exist in the network.
-
deleteLink
public void deleteLink(Neuron a, Neuron b)
Deletes the link between neuronsa
andb
.- Parameters:
a
- Neuron.b
- Neuron.- Throws:
NoSuchElementException
- if the neurons do not exist in the network.
-
getNeuron
public Neuron getNeuron(long id)
Retrieves the neuron with the given (unique)id
.- Parameters:
id
- Identifier.- Returns:
- the neuron associated with the given
id
. - Throws:
NoSuchElementException
- if the neuron does not exist in the network.
-
getNeighbours
public Collection<Neuron> getNeighbours(Iterable<Neuron> neurons)
Retrieves the neurons in the neighbourhood of any neuron in theneurons
list.- Parameters:
neurons
- Neurons for which to retrieve the neighbours.- Returns:
- the list of neighbours.
- See Also:
getNeighbours(Iterable,Iterable)
-
getNeighbours
public Collection<Neuron> getNeighbours(Iterable<Neuron> neurons, Iterable<Neuron> exclude)
Retrieves the neurons in the neighbourhood of any neuron in theneurons
list. Theexclude
list allows to retrieve the "concentric" neighbourhoods by removing the neurons that belong to the inner "circles".- Parameters:
neurons
- Neurons for which to retrieve the neighbours.exclude
- Neurons to exclude from the returned list. Can benull
.- Returns:
- the list of neighbours.
-
getNeighbours
public Collection<Neuron> getNeighbours(Neuron neuron)
Retrieves the neighbours of the given neuron.- Parameters:
neuron
- Neuron for which to retrieve the neighbours.- Returns:
- the list of neighbours.
- See Also:
getNeighbours(Neuron,Iterable)
-
getNeighbours
public Collection<Neuron> getNeighbours(Neuron neuron, Iterable<Neuron> exclude)
Retrieves the neighbours of the given neuron.- Parameters:
neuron
- Neuron for which to retrieve the neighbours.exclude
- Neurons to exclude from the returned list. Can benull
.- Returns:
- the list of neighbours.
-
-