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.
解释下Scope如何被共享,如何查找Variable的算法。
* Scope永远从本地寻找Variable,找不到会从他的父亲Scope寻找Variable
* 嵌套深度不做要求。
```cpp
Scopeglobal;
autox=newVar("X");// x is created in scope global, implicitly.
autoy=newVar("Y");
Netnet1;
net1.addOp("add",{x,y},{x});// x = x + y;
net1.run();
# 接口实现
for(size_ti=0;i<10;++i){
Scopelocal;
autotmp=newVar("tmp");// tmp is created in scope local.
Netnet2;
net2.addOp("add",{x,y},{tmp});
net2.run();// tmp = x + y;
}
C++ code.
Netnet3;
net3.addOp("add",{x,y},{"tmp"});// error! cannot found "tmp" in global scope.
```
### 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.