Package org.ojalgo.ann
Class ArtificialNeuralNetwork
- java.lang.Object
-
- org.ojalgo.ann.ArtificialNeuralNetwork
-
public final class ArtificialNeuralNetwork extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ArtificialNeuralNetwork.Activator
https://en.wikipedia.org/wiki/Activation_functionstatic class
ArtificialNeuralNetwork.Error
-
Field Summary
Fields Modifier and Type Field Description private TrainingConfiguration
myConfiguration
private PhysicalStore.Factory<java.lang.Double,?>
myFactory
private CalculationLayer[]
myLayers
-
Constructor Summary
Constructors Constructor Description ArtificialNeuralNetwork(NetworkBuilder builder)
ArtificialNeuralNetwork(PhysicalStore.Factory<java.lang.Double,?> factory, int inputs, int[] layers)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description (package private) void
adjust(int layer, PhysicalStore<java.lang.Double> input, PhysicalStore<java.lang.Double> output, PhysicalStore<java.lang.Double> upstreamGradient, PhysicalStore<java.lang.Double> downstreamGradient)
static NetworkBuilder
builder(int numberOfNetworkInputNodes)
static NetworkTrainer
builder(int numberOfInputNodes, int... nodesPerCalculationLayer)
Deprecated.Usebuilder(int)
insteadstatic NetworkBuilder
builder(PhysicalStore.Factory<java.lang.Double,?> factory, int numberOfNetworkInputNodes)
static NetworkTrainer
builder(PhysicalStore.Factory<java.lang.Double,?> factory, int numberOfInputNodes, int... nodesPerCalculationLayer)
Deprecated.(package private) int
countInputNodes()
(package private) int
countInputNodes(int layer)
(package private) int
countOutputNodes()
(package private) int
countOutputNodes(int layer)
int
depth()
(package private) static void
doIdentity(PhysicalStore<java.lang.Double> output)
(package private) static void
doReLU(PhysicalStore<java.lang.Double> output)
(package private) static void
doSigmoid(PhysicalStore<java.lang.Double> output)
(package private) static void
doSoftMax(PhysicalStore<java.lang.Double> output)
(package private) static void
doTanh(PhysicalStore<java.lang.Double> output)
boolean
equals(java.lang.Object obj)
static ArtificialNeuralNetwork
from(java.io.DataInput input)
Read (reconstruct) an ANN from the specified input previously written bywriteTo(DataOutput)
.static ArtificialNeuralNetwork
from(java.io.File file)
static ArtificialNeuralNetwork
from(java.nio.file.Path path, java.nio.file.OpenOption... options)
static ArtificialNeuralNetwork
from(PhysicalStore.Factory<java.lang.Double,?> factory, java.io.DataInput input)
Read (reconstruct) an ANN from the specified input previously written bywriteTo(DataOutput)
.static ArtificialNeuralNetwork
from(PhysicalStore.Factory<java.lang.Double,?> factory, java.io.File file)
static ArtificialNeuralNetwork
from(PhysicalStore.Factory<java.lang.Double,?> factory, java.nio.file.Path path, java.nio.file.OpenOption... options)
ArtificialNeuralNetwork.Activator
getActivator(int layer)
double
getBias(int layer, int output)
(package private) ArtificialNeuralNetwork.Activator
getOutputActivator()
double
getWeight(int layer, int input, int output)
(package private) java.util.List<MatrixStore<java.lang.Double>>
getWeights()
int
hashCode()
(package private) PhysicalStore<java.lang.Double>
invoke(int layer, PhysicalStore<java.lang.Double> input, PhysicalStore<java.lang.Double> output)
(package private) DataBatch
newBatch(int rows, int columns)
NetworkInvoker
newInvoker()
With batch size 1NetworkInvoker
newInvoker(int batchSize)
If you create multiple invokers you can use them in different threads simutaneously - the invoker contains any/all invocation specific state.(package private) PhysicalStore<java.lang.Double>
newStore(int rows, int columns)
NetworkTrainer
newTrainer()
With batch size 1NetworkTrainer
newTrainer(int batchSize)
Only 1 trainer at the time.(package private) void
randomise()
(package private) void
scale(int layer, double factor)
(package private) void
setActivator(int layer, ArtificialNeuralNetwork.Activator activator)
(package private) void
setBias(int layer, int output, double bias)
(package private) void
setConfiguration(TrainingConfiguration configuration)
(package private) void
setWeight(int layer, int input, int output, double weight)
Structure2D[]
structure()
java.lang.String
toString()
int
width()
void
writeTo(java.io.DataOutput output)
Will write (save) the ANN to the specified output.void
writeTo(java.io.File file)
void
writeTo(java.nio.file.Path path, java.nio.file.OpenOption... options)
-
-
-
Field Detail
-
myConfiguration
private transient TrainingConfiguration myConfiguration
-
myFactory
private final PhysicalStore.Factory<java.lang.Double,?> myFactory
-
myLayers
private final CalculationLayer[] myLayers
-
-
Constructor Detail
-
ArtificialNeuralNetwork
ArtificialNeuralNetwork(NetworkBuilder builder)
-
ArtificialNeuralNetwork
ArtificialNeuralNetwork(PhysicalStore.Factory<java.lang.Double,?> factory, int inputs, int[] layers)
-
-
Method Detail
-
builder
public static NetworkBuilder builder(int numberOfNetworkInputNodes)
-
builder
@Deprecated public static NetworkTrainer builder(int numberOfInputNodes, int... nodesPerCalculationLayer)
Deprecated.Usebuilder(int)
instead
-
builder
public static NetworkBuilder builder(PhysicalStore.Factory<java.lang.Double,?> factory, int numberOfNetworkInputNodes)
-
builder
@Deprecated public static NetworkTrainer builder(PhysicalStore.Factory<java.lang.Double,?> factory, int numberOfInputNodes, int... nodesPerCalculationLayer)
Deprecated.
-
from
public static ArtificialNeuralNetwork from(java.io.DataInput input) throws java.io.IOException
Read (reconstruct) an ANN from the specified input previously written bywriteTo(DataOutput)
.- Throws:
java.io.IOException
-
from
public static ArtificialNeuralNetwork from(java.io.File file)
- See Also:
from(DataInput)
-
from
public static ArtificialNeuralNetwork from(java.nio.file.Path path, java.nio.file.OpenOption... options)
- See Also:
from(DataInput)
-
from
public static ArtificialNeuralNetwork from(PhysicalStore.Factory<java.lang.Double,?> factory, java.io.DataInput input) throws java.io.IOException
Read (reconstruct) an ANN from the specified input previously written bywriteTo(DataOutput)
.- Throws:
java.io.IOException
-
from
public static ArtificialNeuralNetwork from(PhysicalStore.Factory<java.lang.Double,?> factory, java.io.File file)
- See Also:
from(DataInput)
-
from
public static ArtificialNeuralNetwork from(PhysicalStore.Factory<java.lang.Double,?> factory, java.nio.file.Path path, java.nio.file.OpenOption... options)
- See Also:
from(DataInput)
-
doIdentity
static void doIdentity(PhysicalStore<java.lang.Double> output)
-
doReLU
static void doReLU(PhysicalStore<java.lang.Double> output)
-
doSigmoid
static void doSigmoid(PhysicalStore<java.lang.Double> output)
-
doSoftMax
static void doSoftMax(PhysicalStore<java.lang.Double> output)
-
doTanh
static void doTanh(PhysicalStore<java.lang.Double> output)
-
depth
public int depth()
- Returns:
- The number of calculation layers
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
getActivator
public ArtificialNeuralNetwork.Activator getActivator(int layer)
-
getBias
public double getBias(int layer, int output)
-
getWeight
public double getWeight(int layer, int input, int output)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
newInvoker
public NetworkInvoker newInvoker()
With batch size 1- See Also:
newInvoker(int)
-
newInvoker
public NetworkInvoker newInvoker(int batchSize)
If you create multiple invokers you can use them in different threads simutaneously - the invoker contains any/all invocation specific state.- Parameters:
batchSize
- The batch size - the number of batched invocations- Returns:
- The invoker
-
newTrainer
public NetworkTrainer newTrainer()
With batch size 1- See Also:
newTrainer(int)
-
newTrainer
public NetworkTrainer newTrainer(int batchSize)
Only 1 trainer at the time.- Parameters:
batchSize
- The batch size - the number of batched training examples- Returns:
- The trainer
-
structure
public Structure2D[] structure()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
width
public int width()
- Returns:
- The max number of nodes in any layer
-
writeTo
public void writeTo(java.io.DataOutput output) throws java.io.IOException
Will write (save) the ANN to the specified output. Can then later be read back by usingfrom(DataInput)
.- Throws:
java.io.IOException
-
writeTo
public void writeTo(java.io.File file)
- See Also:
writeTo(DataOutput)
-
writeTo
public void writeTo(java.nio.file.Path path, java.nio.file.OpenOption... options)
- See Also:
writeTo(DataOutput)
-
adjust
void adjust(int layer, PhysicalStore<java.lang.Double> input, PhysicalStore<java.lang.Double> output, PhysicalStore<java.lang.Double> upstreamGradient, PhysicalStore<java.lang.Double> downstreamGradient)
-
countInputNodes
int countInputNodes()
-
countInputNodes
int countInputNodes(int layer)
-
countOutputNodes
int countOutputNodes()
-
countOutputNodes
int countOutputNodes(int layer)
-
getOutputActivator
ArtificialNeuralNetwork.Activator getOutputActivator()
-
getWeights
java.util.List<MatrixStore<java.lang.Double>> getWeights()
-
invoke
PhysicalStore<java.lang.Double> invoke(int layer, PhysicalStore<java.lang.Double> input, PhysicalStore<java.lang.Double> output)
-
newBatch
DataBatch newBatch(int rows, int columns)
-
newStore
PhysicalStore<java.lang.Double> newStore(int rows, int columns)
-
randomise
void randomise()
-
scale
void scale(int layer, double factor)
-
setActivator
void setActivator(int layer, ArtificialNeuralNetwork.Activator activator)
-
setBias
void setBias(int layer, int output, double bias)
-
setConfiguration
void setConfiguration(TrainingConfiguration configuration)
-
setWeight
void setWeight(int layer, int input, int output, double weight)
-
-