提交 f6bbcfda 编写于 作者: T Travis CI

Deploy to GitHub Pages: ee22a436

上级 7f7b198d
......@@ -22,7 +22,7 @@ Whenever we create a block, we need to set its parent block to the current block
```python
class Program(objects):
def __init__(self):
self.proto = core.NewProgram() # a C++ ProgramDesc pointer.
self.desc = core.NewProgram() # a C++ ProgramDesc pointer.
self.blocks = vector<Block>()
self.blocks.append(Block(self, -1)) # the global block
self.current_block = 0 # initialized to the global block
......@@ -57,7 +57,7 @@ A [Block](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/block.m
```python
class Block(objects):
def __init__(self, program, parent_idx):
self.proto = core.NewBlock(program.proto)
self.desc = core.NewBlock(program.desc)
self.program = program
self.vars = map<string, Variable>()
self.ops = vector<Operator>()
......@@ -98,11 +98,11 @@ class Operator(object):
outputs,# dict<stirng, Variable>
attrs # dict<string, Any>
):
self.proto = core.NewOpDesc(block.proto, type, inputs, outputs, attrs)
core.infer_shape(self.proto, inputs, outputs)
self.desc = core.NewOpDesc(block.desc, type, inputs, outputs, attrs)
core.infer_shape(self.desc, inputs, outputs)
def type(self):
return self.proto.type()
return self.desc.type()
```
`Operator` creates the `OpDesc` message in C++ space, so that it can call the `InferShape` function, which is in C++.
......@@ -124,7 +124,7 @@ class Variable(object):
name = unique_name_generator()
self.name = name
self.block = block
self.proto = core.NewVarDesc(block.proto, name, shape, lod_level)
self.desc = core.NewVarDesc(block.desc, name, shape, lod_level)
self.writer = None
```
......
......@@ -195,7 +195,7 @@
<p>Whenever we create a block, we need to set its parent block to the current block, hence the Python class <code class="docutils literal"><span class="pre">Program</span></code> needs to maintain a data member <code class="docutils literal"><span class="pre">current_block</span></code>.</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Program</span><span class="p">(</span><span class="n">objects</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewProgram</span><span class="p">()</span> <span class="c1"># a C++ ProgramDesc pointer.</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewProgram</span><span class="p">()</span> <span class="c1"># a C++ ProgramDesc pointer.</span>
<span class="bp">self</span><span class="o">.</span><span class="n">blocks</span> <span class="o">=</span> <span class="n">vector</span><span class="o">&lt;</span><span class="n">Block</span><span class="o">&gt;</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">blocks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Block</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="c1"># the global block</span>
<span class="bp">self</span><span class="o">.</span><span class="n">current_block</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># initialized to the global block</span>
......@@ -228,7 +228,7 @@
</ol>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Block</span><span class="p">(</span><span class="n">objects</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">program</span><span class="p">,</span> <span class="n">parent_idx</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewBlock</span><span class="p">(</span><span class="n">program</span><span class="o">.</span><span class="n">proto</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewBlock</span><span class="p">(</span><span class="n">program</span><span class="o">.</span><span class="n">desc</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">program</span> <span class="o">=</span> <span class="n">program</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vars</span> <span class="o">=</span> <span class="nb">map</span><span class="o">&lt;</span><span class="n">string</span><span class="p">,</span> <span class="n">Variable</span><span class="o">&gt;</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ops</span> <span class="o">=</span> <span class="n">vector</span><span class="o">&lt;</span><span class="n">Operator</span><span class="o">&gt;</span><span class="p">()</span>
......@@ -266,11 +266,11 @@
<span class="n">outputs</span><span class="p">,</span><span class="c1"># dict&lt;stirng, Variable&gt;</span>
<span class="n">attrs</span> <span class="c1"># dict&lt;string, Any&gt;</span>
<span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewOpDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">proto</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
<span class="n">core</span><span class="o">.</span><span class="n">infer_shape</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">proto</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewOpDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
<span class="n">core</span><span class="o">.</span><span class="n">infer_shape</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">proto</span><span class="o">.</span><span class="n">type</span><span class="p">()</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="o">.</span><span class="n">type</span><span class="p">()</span>
</pre></div>
</div>
<p><code class="docutils literal"><span class="pre">Operator</span></code> creates the <code class="docutils literal"><span class="pre">OpDesc</span></code> message in C++ space, so that it can call the <code class="docutils literal"><span class="pre">InferShape</span></code> function, which is in C++.</p>
......@@ -290,7 +290,7 @@
<span class="n">name</span> <span class="o">=</span> <span class="n">unique_name_generator</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
<span class="bp">self</span><span class="o">.</span><span class="n">block</span> <span class="o">=</span> <span class="n">block</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewVarDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">proto</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">lod_level</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewVarDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">lod_level</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">writer</span> <span class="o">=</span> <span class="bp">None</span>
</pre></div>
</div>
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -22,7 +22,7 @@ Whenever we create a block, we need to set its parent block to the current block
```python
class Program(objects):
def __init__(self):
self.proto = core.NewProgram() # a C++ ProgramDesc pointer.
self.desc = core.NewProgram() # a C++ ProgramDesc pointer.
self.blocks = vector<Block>()
self.blocks.append(Block(self, -1)) # the global block
self.current_block = 0 # initialized to the global block
......@@ -57,7 +57,7 @@ A [Block](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/block.m
```python
class Block(objects):
def __init__(self, program, parent_idx):
self.proto = core.NewBlock(program.proto)
self.desc = core.NewBlock(program.desc)
self.program = program
self.vars = map<string, Variable>()
self.ops = vector<Operator>()
......@@ -98,11 +98,11 @@ class Operator(object):
outputs,# dict<stirng, Variable>
attrs # dict<string, Any>
):
self.proto = core.NewOpDesc(block.proto, type, inputs, outputs, attrs)
core.infer_shape(self.proto, inputs, outputs)
self.desc = core.NewOpDesc(block.desc, type, inputs, outputs, attrs)
core.infer_shape(self.desc, inputs, outputs)
def type(self):
return self.proto.type()
return self.desc.type()
```
`Operator` creates the `OpDesc` message in C++ space, so that it can call the `InferShape` function, which is in C++.
......@@ -124,7 +124,7 @@ class Variable(object):
name = unique_name_generator()
self.name = name
self.block = block
self.proto = core.NewVarDesc(block.proto, name, shape, lod_level)
self.desc = core.NewVarDesc(block.desc, name, shape, lod_level)
self.writer = None
```
......
......@@ -209,7 +209,7 @@
<p>Whenever we create a block, we need to set its parent block to the current block, hence the Python class <code class="docutils literal"><span class="pre">Program</span></code> needs to maintain a data member <code class="docutils literal"><span class="pre">current_block</span></code>.</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Program</span><span class="p">(</span><span class="n">objects</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewProgram</span><span class="p">()</span> <span class="c1"># a C++ ProgramDesc pointer.</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewProgram</span><span class="p">()</span> <span class="c1"># a C++ ProgramDesc pointer.</span>
<span class="bp">self</span><span class="o">.</span><span class="n">blocks</span> <span class="o">=</span> <span class="n">vector</span><span class="o">&lt;</span><span class="n">Block</span><span class="o">&gt;</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">blocks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Block</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span> <span class="c1"># the global block</span>
<span class="bp">self</span><span class="o">.</span><span class="n">current_block</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># initialized to the global block</span>
......@@ -242,7 +242,7 @@
</ol>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Block</span><span class="p">(</span><span class="n">objects</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">program</span><span class="p">,</span> <span class="n">parent_idx</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewBlock</span><span class="p">(</span><span class="n">program</span><span class="o">.</span><span class="n">proto</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewBlock</span><span class="p">(</span><span class="n">program</span><span class="o">.</span><span class="n">desc</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">program</span> <span class="o">=</span> <span class="n">program</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vars</span> <span class="o">=</span> <span class="nb">map</span><span class="o">&lt;</span><span class="n">string</span><span class="p">,</span> <span class="n">Variable</span><span class="o">&gt;</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ops</span> <span class="o">=</span> <span class="n">vector</span><span class="o">&lt;</span><span class="n">Operator</span><span class="o">&gt;</span><span class="p">()</span>
......@@ -280,11 +280,11 @@
<span class="n">outputs</span><span class="p">,</span><span class="c1"># dict&lt;stirng, Variable&gt;</span>
<span class="n">attrs</span> <span class="c1"># dict&lt;string, Any&gt;</span>
<span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewOpDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">proto</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
<span class="n">core</span><span class="o">.</span><span class="n">infer_shape</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">proto</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewOpDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
<span class="n">core</span><span class="o">.</span><span class="n">infer_shape</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="n">inputs</span><span class="p">,</span> <span class="n">outputs</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">proto</span><span class="o">.</span><span class="n">type</span><span class="p">()</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="o">.</span><span class="n">type</span><span class="p">()</span>
</pre></div>
</div>
<p><code class="docutils literal"><span class="pre">Operator</span></code> creates the <code class="docutils literal"><span class="pre">OpDesc</span></code> message in C++ space, so that it can call the <code class="docutils literal"><span class="pre">InferShape</span></code> function, which is in C++.</p>
......@@ -304,7 +304,7 @@
<span class="n">name</span> <span class="o">=</span> <span class="n">unique_name_generator</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
<span class="bp">self</span><span class="o">.</span><span class="n">block</span> <span class="o">=</span> <span class="n">block</span>
<span class="bp">self</span><span class="o">.</span><span class="n">proto</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewVarDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">proto</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">lod_level</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">core</span><span class="o">.</span><span class="n">NewVarDesc</span><span class="p">(</span><span class="n">block</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span> <span class="n">lod_level</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">writer</span> <span class="o">=</span> <span class="bp">None</span>
</pre></div>
</div>
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册