horn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edward J. Yoon (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HORN-4) Designing Programming APIs
Date Thu, 22 Oct 2015 02:17:27 GMT
Edward J. Yoon created HORN-4:

             Summary: Designing Programming APIs
                 Key: HORN-4
                 URL: https://issues.apache.org/jira/browse/HORN-4
             Project: Apache Horn
          Issue Type: Sub-task
          Components: api
            Reporter: Edward J. Yoon

As described in original proposal, we will have neuron-centric programming interface (or we
can support multiple programming paradigms e.g., layer-centric). Regarding languages, we're
going to be supporting a number of languages such as Java, Python, Scala.

At the moment, I'll focus only on Java-based neuron-centric in this ticket. 

Below is my rough sketch. I suggest that we provides two methods: upward and downward. The
reason of separating into two methods is to provide more intuitive programming model and reduce
their code complexity. The up or downward can be determined by message type internally.

public interface NeuronInterface<M extends Writable> {

   * This method is called when the messages are propagated from the lower
   * layer. It can be used to determine if the neuron would activate, or fire.
   * @param messages
   * @throws IOException
  public void upward(Iterable<M> messages) throws IOException;

   * This method is called when the errors are propagated from the upper layer.
   * It can be used to calculate the error of each neuron and change the
   * weights.
   * @param messages
   * @throws IOException
  public void downward(Iterable<M> messages) throws IOException;


This message was sent by Atlassian JIRA

View raw message