You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@horn.apache.org by "Edward J. Yoon (JIRA)" <ji...@apache.org> on 2015/10/23 02:56:27 UTC
[jira] [Comment Edited] (HORN-4) Designing Programming APIs
[ https://issues.apache.org/jira/browse/HORN-4?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14970214#comment-14970214 ]
Edward J. Yoon edited comment on HORN-4 at 10/23/15 12:55 AM:
--------------------------------------------------------------
NOTE: I heard some side opinion from Thomas.
* layer-wise partitioning is needed
* neuron-centric may not fit for GPU
So, as described above, we may should have to support multiple programming paradigms e.g., layer-centric.
was (Author: udanax):
NOTE: I heard some side opinion from Thomas.
* layer-wise partitioning
* neuron-centric may not fit for GPU
So, as described above, we may should have to support multiple programming paradigms e.g., layer-centric.
> 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)