• Theano基础


    Theano基础

    theano与numpy中都有broadcasting:numpy中是动态的,而theano需要在这之前就知道是哪维需要被广播(broadcast)。针对不同类型的数据给出如下的一张表,基本类型包括scalar、vector、row、col、matrix、tensor3、tensor4

    x = scalar('myvar',dtype='int32') 
    x = iscalar('myvar') 
    x = TensorType(dtype = 'int32', broadcastable=())('myvar') 

    有整形int对应的8、16、32、64位分别为b、w、i、l;float类型对应的32、64位为f、d;complex类型对应的64、128位为c、z。

    theano.tensor.scalar(name=None,dtype=config.floatX) 
    theano.tensor.vector(name=None,dtype=config.floatX) 
    theano.tensor.row(name=None, dtype=config.floatX) 
    theano.tensor.col(name=None,dtype=config.floatX) 
    theano.tensor.matrix(name=None,dtype=config.floatX) 
    theano.tensor.tensor3(name=None,dtype=config.floatX) #3D张量 
    theano.tensot.tensor4(name=None,dtype=config.floatX) #4D张量 
    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
    """
    theano基础
    """
    
    import numpy as np
    import theano.tensor as T
    from theano import function
    
    #定义X和Y两个常量 (scalar),把结构建立好之后,把结构放在function,在把数据放在function。
    # 建立 x 的容器
    x = T.dscalar('x')
    # 建立 y 的容器
    y = T.dscalar('y') 
    #  建立方程
    z = x + y
    
    # 使用 function 定义 theano 的方程
    # 将输入值 x, y 放在 [] 里,  输出值 z 放在后面
    f = function([x, y], z)
    
    # 将确切的 x, y 值放入方程中
    print(f(2, 3))
    
    # output: 5.0

    在theano 中 的 pp (pretty-print) 能够打印出原始方程:

    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
    """
    theano基础
    """
    
    import numpy as np
    import theano.tensor as T
    from theano import function
    
    #theano 中 的 pp (pretty-print) 能够打印出原始方程:
    from theano import pp
    print(pp(z))
    # output:(x + y)

     定义矩阵,以及利用矩阵做相关运算:

    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
    """
    theano基础
    """
    
    import numpy as np
    import theano.tensor as T
    from theano import function
    
    #定义矩阵,以及利用矩阵做相关运算:
    # 矩阵 x 的容器
    x = T.dmatrix('x')
    # 矩阵 y 的容器
    y = T.dmatrix('y')
    # 定义矩阵加法
    z = x + y
    # 定义方程
    f = function([x, y], z)
    print(f(
            np.arange(12).reshape(3,4),#x为3行4列的矩阵
            10 * np.ones((3, 4)) #y也为3行4列,且数值全为10
            ))
    
    """
    output:
    [[ 10.  11.  12.  13.]
     [ 14.  15.  16.  17.]
     [ 18.  19.  20.  21.]]
    """
  • 相关阅读:
    迅雷亲历面试经过,笔试+上机+面试(完整)
    Flash Player安全高级攻略
    EBS查看Report程式所挂在的. 报表名. 组. 责任
    ORACLE常用后台表查询
    Ap_Aging_Report SQL月底结账使用
    2012年最新会计科目表
    如何用sql实现AP_payments中应付余额与GL_balance对应科目余额相同
    SQL应收帐款帐龄报表(AR_Aging_Reporting)
    Navigator: Disable Multiform
    GL: 访问权限集
  • 原文地址:https://www.cnblogs.com/xmeo/p/7231585.html
Copyright © 2020-2023  润新知