Class Fann

java.lang.Object
com.googlecode.fannj.Fann
Direct Known Subclasses:
FannShortcut, FannSparse

public class Fann extends Object

A standard fully connected back-propagation neural network.

Not thread safe.

A Java binding to the Fast Artificial Neural Network (FANN) native library.

This class invokes native code. You must call close() to prevent memory leakage.

See Also:
  • Field Details

    • ann

      protected com.sun.jna.Pointer ann
  • Constructor Details

    • Fann

      protected Fann()
    • Fann

      public Fann(String file)
      Load an existing FANN definition from a file
      Parameters:
      file -
    • Fann

      public Fann(List<Layer> layers)
      Create a new ANN with the provided layers.
      Parameters:
      layers -
  • Method Details

    • addLayers

      protected void addLayers(List<Layer> layers)
    • getNumInputNeurons

      public int getNumInputNeurons()
    • getNumOutputNeurons

      public int getNumOutputNeurons()
    • getTotalNumNeurons

      public int getTotalNumNeurons()
    • save

      public boolean save(String file)
      Save this FANN to a file.
      Parameters:
      file -
      Returns:
      true on success
    • run

      public float[] run(float[] input)
      Run the ANN on a set of inputs.
      Parameters:
      input - length == numInputNeurons
      Returns:
      the output of the ANN. (length = numOutputNeurons)
    • close

      public void close()

      Frees allocated memory.

      You must call this method when you are finished to prevent memory leaks.
    • finalize

      public void finalize() throws Throwable
      Call close() on garbage collection to catch memory leaks.
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • fann_create_standard_array

      protected static com.sun.jna.Pointer fann_create_standard_array(int numLayers, int[] layers)
    • fann_create_sparse_array

      protected static com.sun.jna.Pointer fann_create_sparse_array(float connection_rate, int numLayers, int[] layers)
    • fann_create_shortcut_array

      protected static com.sun.jna.Pointer fann_create_shortcut_array(int numLayers, int[] layers)
    • fann_get_MSE

      protected static float fann_get_MSE(com.sun.jna.Pointer ann)
    • fann_run

      protected static com.sun.jna.Pointer fann_run(com.sun.jna.Pointer ann, float[] input)
    • fann_destroy

      protected static void fann_destroy(com.sun.jna.Pointer ann)
    • fann_get_num_input

      protected static int fann_get_num_input(com.sun.jna.Pointer ann)
    • fann_get_num_output

      protected static int fann_get_num_output(com.sun.jna.Pointer ann)
    • fann_get_total_neurons

      protected static int fann_get_total_neurons(com.sun.jna.Pointer ann)
    • fann_set_activation_function

      protected static void fann_set_activation_function(com.sun.jna.Pointer ann, int activation_function, int layer, int neuron)
    • fann_set_activation_steepness

      protected static void fann_set_activation_steepness(com.sun.jna.Pointer ann, float steepness, int layer, int neuron)
    • fann_get_neuron

      protected static com.sun.jna.Pointer fann_get_neuron(com.sun.jna.Pointer ann, int layer, int neuron)
    • fann_create_from_file

      protected static com.sun.jna.Pointer fann_create_from_file(String configuration_file)
    • fann_save

      protected static int fann_save(com.sun.jna.Pointer ann, String file)