zoukankan      html  css  js  c++  java
  • Theano Graph Structure

    Graph Structure

    Graph Definition

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

    • 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

    Code

    >>> 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.

    Graph Structures

    Apply

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

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

    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.

    Type

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

    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.

    Graph Structures Extension

  • 相关阅读:
    CAS实战の简介
    高效程序员的45个习惯の排除万难奋勇前进
    高效程序员的45个习惯の对事不对人
    高效程序员的45个习惯の欲速则不达
    高效程序员的45个习惯の正确做事
    Java中Runnable和Thread的区别
    Intellij IDEA 14的注册机(Java版)
    session token防表单重提
    maven下@override标签失效
    Oracle sql 优化の索引监控
  • 原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/6240085.html
Copyright © 2011-2022 走看看