scope design doc

gangliao-patch-1
qiaolongfei 8 years ago
parent 7bce40d7be
commit bcac91a463

@ -0,0 +1,30 @@
# Scope
### Define
Scope is a context to manage Variables. It mainly contains a map from Variable name to Variable. Net will get and update variable throw scope.
```cpp
class Scope {
Variable GetVar();
private:
// var_name -> var
std::map<string, Variable> var_map_;
Scope* parent_scope_;
}
```
You need to specify a scope to run a Net. One net can run in different scopes and update different variable in the scope. If you did not specify one, It will run in a default scope.
```python
with ScopeGuard(scope)
Net net = Net();
Net.run()
```
### Chain structure
Scope has a pointer point to it's parent scope, this is mainly used in RNN when it need to create many stepNet.
### Scope Guard
Loading…
Cancel
Save