Initialization design doc#4852
Conversation
|
|
From https://travis-ci.org/PaddlePaddle/Paddle/jobs/288826972#L993 , it seems that the updated Markdown file ends with none or more than one empty lines. This has to be fixed; otherwise, pre-commit will fail. |
|
I vote for Proposal 1. -- make it run once. |
|
Update: the current implementation is based on proposal 1. |
doc/design/initialization.md
Outdated
|
|
||
| ## Proposals | ||
|
|
||
| ### Proposal 1: Two seperate `ProgramDesc`. |
There was a problem hiding this comment.
this seems simple and workable.
The resource which survived across multiple block/program is the Variables in Scopes.
A program is the container of multiple Blocks, more than one program seems not a problem.
|
if we have a conclusion that we will use multiple programs, one is for initializing, should we update this design? |
| ## Proposals | ||
|
|
||
| ### Proposal 1: Two seperate `ProgramDesc`. | ||
| ## Solution: Two seperate `ProgramDesc`. |
There was a problem hiding this comment.
Who will output the two separate ProgramDescs?
I my mind:
Python ---(entire ProgramDesc) ---> Pruner ---(ProgramDesc1, ProgramDesc2)---> Executor.
We need to make sure Pruner have the global view. For example, in cluster training, the Pruner need to have the global view in order to do things like deciding parameter placement.
There was a problem hiding this comment.
Python generates two separate ProgramDesc, one for initialization, and one for training. Both ProgramDescs contain all the parameter description. Do you think it is enough to decide parameter placement? If not, we can always send both ProgramDescs to Pruner.
There was a problem hiding this comment.
If Python can do the separation, pruner should be able to do it as well. Is it possible to let pruner do the job?
Parameter placement is just an example supporting the argument that the pruner needs to have the global view.
| ## Proposals | ||
|
|
||
| ### Proposal 1: Two seperate `ProgramDesc`. | ||
| ## Solution: Two seperate `ProgramDesc`. |
Conclusion: two separate programDesc.