[
https://issues.apache.org/jira/browse/SINGA-70?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
wangwei updated SINGA-70:
-------------------------
Description:
Currently, each layer manages its own source and destination layers.
*ComputeFeature* and *ComputeGradient* functions get data from *srclayer_*.
There are two problems for this design,
* Layer is in charge of feature transformation, who should not be involved in
the network topology management like managing the srclayer_ filed.
* The API of layer functions are not elegant. Every layer computes features (or
gradient) based on its connected layer. Hence the connection layers (i.e.,
srclayers) should be provided as one argument.
If we move the srclayer to the function argument list, then the layer class
would be more modular. The neural net topology can be managed by the NeuralNet
class.
Layer::ToString() is added for displaying information from layers. For example,
we can use this function to display the performance of
training/validation/test. It can also be used for displaying debug information.
It is called by the Worker, e.g., after validation test or periodically.
This ticket also refactors the code of Worker, Server and Driver.
The creation functions for workers and servers are moved into Driver.
The Trainer is renamed to Stub, which manages (e.g., handling or forwarding)
messages between workers and servers.
All files in folder trainer is moved outside to be under the src/ or include/.
The folder *communication* is renamed to *comm*
was:
Currently, each layer manages its own source and destination layers.
*ComputeFeature* and *ComputeGradient* functions get data from *srclayer_*.
There are two problems for this design,
* Layer is in charge of feature transformation, who should not be involved in
the network topology management like managing the srclayer_ filed.
* The API of layer functions are not elegant. Every layer computes features (or
gradient) based on its connected layer. Hence the connection layers (i.e.,
srclayers) should be provided as one argument.
If we move the srclayer to the function argument list, then the layer class
would be more modular. The neural net topology can be managed by the NeuralNet
class.
This ticket also refactor the code of Worker, Server and Driver.
The creation functions for workers and servers are moved into Driver.
The Trainer is renamed to Stub, which manages (e.g., handling or forwarding)
messages between workers and servers.
> Refactor API of Layer, Worker, Server and Driver
> ------------------------------------------------
>
> Key: SINGA-70
> URL: https://issues.apache.org/jira/browse/SINGA-70
> Project: Singa
> Issue Type: Improvement
> Reporter: wangwei
>
> Currently, each layer manages its own source and destination layers.
> *ComputeFeature* and *ComputeGradient* functions get data from *srclayer_*.
> There are two problems for this design,
> * Layer is in charge of feature transformation, who should not be involved in
> the network topology management like managing the srclayer_ filed.
> * The API of layer functions are not elegant. Every layer computes features
> (or gradient) based on its connected layer. Hence the connection layers
> (i.e., srclayers) should be provided as one argument.
> If we move the srclayer to the function argument list, then the layer class
> would be more modular. The neural net topology can be managed by the
> NeuralNet class.
> Layer::ToString() is added for displaying information from layers. For
> example, we can use this function to display the performance of
> training/validation/test. It can also be used for displaying debug
> information.
> It is called by the Worker, e.g., after validation test or periodically.
> This ticket also refactors the code of Worker, Server and Driver.
> The creation functions for workers and servers are moved into Driver.
> The Trainer is renamed to Stub, which manages (e.g., handling or forwarding)
> messages between workers and servers.
> All files in folder trainer is moved outside to be under the src/ or include/.
> The folder *communication* is renamed to *comm*
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)