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.
{code}
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;
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)