[
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)