[ 
https://issues.apache.org/jira/browse/SINGA-61?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

wangwei resolved SINGA-61.
--------------------------
    Resolution: Fixed

example/rnnlm provides an example.

> 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