Theano Graph Structure

Graph Structure

Graph Definition

theano's symbolic mathematical computation, which is composed of:html

  • Apply node: the application of an operator to some variable.
  • Variable node: symbolic varibles.
  • Op node: mathematical operation like: +,-,*,\,sqrt,sum,tanh.
  • Types: describe data type.

Example

Codenode

>>> import theano.tensor as T

>>> x = T.matrix('x')
>>> y = T.matrix('y')
>>> z = x + y
>>> print z.owner
    Elemwise{add,no_inplace}(Elemwise{pow,no_inplace}.0, y)

../_images/apply.png

  1. python object references: Arrow.
  2. Apply node: blue box. is composed of inputs,op and output fields.
  3. Variable Node: Red Box. the owner of x and y point to None, as they are not the results of another computation. If one of them is the result of another computation, it's owner field would point to another Apply Node.
  4. Op Node: Green circle.
  5. Types: Purple boxes.

Note: Apply Node points to z, so z.owner points back to the Apply instance.python

Graph Structures

Apply

internal node represent of computation graph in theano, which can be accessed by variable_name.owner.app

the Apply Node has three fields, and can be created by gof.Apply(op,inputs,outputs):.net

  1. Op: the function to be applied.
  2. inputs:the arguments of the functions.
  3. outputs: the return value of the function.

Op

certain computation on some inputs and producing some types of outputs.debug

Type

it helps to tailor C code to handle and optimize the computation graph.code

Variable

  1. type:
  2. owner: None or Apply Node
  3. index
  4. name: string for debugging

Constant

a constant is a variable. it assume the Op Node will not modify the inputs.htm

Graph Structures Extension

相關文章
相關標籤/搜索