wangwei created SINGA-61:
----------------------------

             Summary: 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 the type of 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