horn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Jungblut (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HORN-4) Designing Programming APIs
Date Tue, 03 Nov 2015 14:34:28 GMT

    [ https://issues.apache.org/jira/browse/HORN-4?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14987365#comment-14987365
] 

Thomas Jungblut commented on HORN-4:
------------------------------------

I think it is a very powerful idea as well. I see some technical difficulties here. Let's
try to get a small multi-layer perceptron running with Rootbeer and a neuron-centric model
on a local machine and see the feasibility. I see some issues with convolutions and tensors
and in the configuration of these. 

> 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 user-side code complexity. The up or downward can be determined by message type internally,
and basically each neuron can be activated only when the messages are delivered. 
> {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)

Mime
View raw message