• 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

  • 相关阅读:
    服务限流原理及算法
    Kafka 与 RabbitMQ 如何选择使用哪个?
    分布式事务之最终一致性实现方案
    如何在Ubuntu 14.04中使用systemctl?
    postgresql13 for window 安装及备份还原数据
    手把手教大家在mac上用VMWare虚拟机装Ubuntu
    在Mac平台上使用Multipass安装Ubuntu虚拟机
    如何在markdown中插入js和css
    HTML5标签
    linux
  • 原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/6240085.html
Copyright © 2020-2023  润新知