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

ASF subversion and git services commented on SINGA-61:
------------------------------------------------------

Commit 97141e2e0e81045a6bbedee14d88e98a4ad6c136 in incubator-singa's branch 
refs/heads/master from Wei Wang
[ https://git-wip-us.apache.org/repos/asf?p=incubator-singa.git;h=97141e2 ]

SINGA-61 Support user defined classes

To support user defined classes, we need to set a type field for each class in 
the configuration.
E.g., the LayerProto has a type field. But this type field can only be set to 
built-in layer types.
This commit adds a user_type field for user defined layers. E.g.,

    LayerProto {
      optional string user_type = 10;
    }

A helper function Layer::Create(const LayerProto&) is added to create a Layer 
object based on configured type.

Similar updates are applied for other classes, namely, Param, Worker, Updater.


> Support user defined classes
> ----------------------------
>
>                 Key: SINGA-61
>                 URL: https://issues.apache.org/jira/browse/SINGA-61
>             Project: Singa
>          Issue Type: New Feature
>            Reporter: wangwei
>
> Many modules in SINGA are extensible. To make it easy for users to implement 
> their own classes, SINGA separates user code and SINGA code. Users just 
> compile their code and link it with libsinga.so. One problem in this design 
> is on the configuration. Take the Layer configuration as an example。
> {code}
> enum LayerType{
>   kFoo = 2;
>   ...
> }
> message LayerProto {
>   required LayerType type = 2;
> }
> {code}
> The types of all built-in layers are defined in *enum LayerType*. However, 
> for user defined Layer sub-classes, users cannot add them into *LayerType* 
> without recompiling SINGA code (google protocol buffer does not support 
> extension of enum types).
> To solve this problem, SINGA needs one field for user defined Layer 
> sub-classes.
> {code}
> message LayerProto {
>   optional LayerType type =2;
>   optional string user_type = 3;
> }
> {code}
> In user's job configuration file, he either sets *type* ( for built-in layer) 
> or set *user_type* (for user defined layer).
> It is similar for other classes, e.g., Worker, Updater, etc.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to