Return-Path: X-Original-To: apmail-horn-dev-archive@minotaur.apache.org Delivered-To: apmail-horn-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B54D61869E for ; Thu, 22 Oct 2015 02:17:30 +0000 (UTC) Received: (qmail 948 invoked by uid 500); 22 Oct 2015 02:17:30 -0000 Delivered-To: apmail-horn-dev-archive@horn.apache.org Received: (qmail 908 invoked by uid 500); 22 Oct 2015 02:17:30 -0000 Mailing-List: contact dev-help@horn.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@horn.incubator.apache.org Delivered-To: mailing list dev@horn.incubator.apache.org Received: (qmail 897 invoked by uid 99); 22 Oct 2015 02:17:30 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Oct 2015 02:17:30 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 398341A2367 for ; Thu, 22 Oct 2015 02:17:30 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.03 X-Spam-Level: X-Spam-Status: No, score=-4.03 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 9a4TYl33fPtm for ; Thu, 22 Oct 2015 02:17:29 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id 9FFCB20750 for ; Thu, 22 Oct 2015 02:17:28 +0000 (UTC) Received: (qmail 545 invoked by uid 99); 22 Oct 2015 02:17:27 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Oct 2015 02:17:27 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id B88B72C1F5E for ; Thu, 22 Oct 2015 02:17:27 +0000 (UTC) Date: Thu, 22 Oct 2015 02:17:27 +0000 (UTC) From: "Edward J. Yoon (JIRA)" To: dev@horn.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (HORN-4) Designing Programming APIs MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 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 { /** * 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 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 messages) throws IOException; } {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)