zoukankan      html  css  js  c++  java
  • [Theano] Theano初探

    1. Theano用来干嘛的?

    Theano was written at the LISA lab to support rapid development of efficient machine learning algorithms. Theano is named after the Greek mathematician, who may have been Pythagoras’ wife. Theano is released under a BSD license (link).

    加快处理多维数组计算。Theano is a Python library that lets you to define, optimize, and evaluate mathematical expressions, especially ones with multi-dimensional arrays (numpy.ndarray). Using Theano it is possible to attain speeds rivaling hand-crafted C implementations for problems involving large amounts of data. It can also surpass C on a CPU by many orders of magnitude by taking advantage of recent GPUs.

    Theano’s compiler applies many optimizations of varying complexity to these symbolic expressions. These optimizations include, but are not limited to:

    • use of GPU for computations
    • constant folding
    • merging of similar subgraphs, to avoid redundant calculation
    • arithmetic simplification (e.g. x*y/x -> y--x -> x)
    • inserting efficient BLAS operations (e.g. GEMM) in a variety of contexts
    • using memory aliasing to avoid calculation
    • using inplace operations wherever it does not interfere with aliasing
    • loop fusion for elementwise sub-expressions
    • improvements to numerical stability (e.g. log(1+exp(x)) and log(sum_i exp(x[i])))
    • for a complete list, see Optimizations

    2. 安装Theano

    我用的是Ubuntu,所以戳Easy Installation of an Optimized Theano on Current Ubuntu. (其它系统见Installing Theano

    直接用下面指令就安装完成了

    For Ubuntu 11.10 through 14.04:

    #sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git
    #sudo pip install Theano

    3. 测试一下logistic function

    import theano
    import theano.tensor as T
    x = T.dmatrix('x')
    s = 1 / (1 + T.exp(-x))
    logistic = theano.function([x], s)
    logistic([[0, 1], [-1, -2]])

    如果没有报错就完成了

  • 相关阅读:
    SilkTest Q&A 5
    SilkTest Q&A 6
    产生n不同随机数的算法
    根据日期计算星期小算法
    Linux $( )与${ }的区别
    UVA 10313(完全背包变形)
    HDU 4277 USACO ORZ
    Android Studio上手,基于VideoView的本地文件及流媒体播放器
    Mina框架项目运用
    【iOS】怎样推断文本文件的字符编码格式
  • 原文地址:https://www.cnblogs.com/littletail/p/5237916.html
Copyright © 2011-2022 走看看