Deep Learning for NLP

Deep Learning for NLP

Lecture 2:Introduction to Teano

enter link description here

Neural Networks can be expressed as one long function of vector and matrix operations.

(神经网络可以表示为一个向量和矩阵运算的长函数。)

Common Frameworks(常用框架)

  • C/C++

    if you need maximum performance,start from scratch(如果你需要最高性能,那么就从头开始编程吧:)
  • Matlab
  • Caffe

    Ported Matlab’s implementation nets to C.(Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口)

    Mainly used for machine-vision(主要用于机器视觉。)
  • Torch:

    Based on Lua,(基于Lua,)

    Used by a lot of companies(Google Deep Mind,Facebook,IBM)(被很多公司所使用,包括google深度大脑,facebook,IBM等等)
  • Theano

    Python based framework(python基本的框架)

    Main framework used in the research community(主要框架被用于研究团队)

    For comparison: http://fastml.com/torch-vs-theano/

Introduction to Theano

Advantage(优点)

  • Python library with tight integration of Numpy(python库Numpy的紧密集成)

    Easy syntax for matrix operations(简单的矩阵运算语法)
  • Transparent use of GPU(speed-up of up to 140x)(透明的GPU使用(加速140x))
  • Efficient symbolic differentiation(Theano computes the gradient)(有效的符号微分(Theano计算梯度))
  • Speed and stability optimizations(速度和稳定性优化)
  • Calculations are dynamically mapped to C code(计算动态映射到C代码)

    We do our computations as fast as we would have written it in C (我们有跟我们用C代码写出来的程序一样快的运算速度)

    Great performance(>10 faster than Java in my experiments)(伟大的性能(比在我的实验中用Java还要快10倍))

Disadvantages(缺点)

  • Debugging is really hard(调试很困难)

Some note on the installation of Theano(Theano安装的一些注意事项)

  • Theano utilizes BLAS (Basic Linear Algebra Subprograms)(Theano利用BLAS(基本线性代数的子程序))

    Building blocks for fast vector and matrix operations(速度向量和矩阵运算的构建块)

    Often written in Fortran, sometimes in Assembler(经常用Fortran编写,但有时候用Assembler)
  • For performance optimization install a BLAS package(为优化性能安装一个BLAS包)
  • Benchmark different BLAS packages(不同BLAS包的基准不同)
  • I use a manually compiled OpenBlas implementation(我使用一个手动编译OpenBlas来实现)

    Installation notes: http://deeplearning.net/software/theano/install_ubuntu.html

Theano – Flow(Theano流程图)

The execution of a Theano script is a bit different(Theano脚本的执行略有不同)

Theano-Computation Graph(Theano计算图)

import theano
import theano.tensor as T

a=T.fvector()
b=T.fvector()
c=T.fmatrix()

res1=a+b
res2=T.dot(res1,c)

Deep Learning for NLP学习翻译笔记(2)的更多相关文章

  1. (Stanford CS224d) Deep Learning and NLP课程笔记(一):Deep NLP

    Stanford大学在2015年开设了一门Deep Learning for Natural Language Processing的课程,广受好评.并在2016年春季再次开课.我将开始这门课程的学习 ...

  2. 【转】Deep Learning(深度学习)学习笔记整理系列之(一)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0  2013-0 ...

  3. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  4. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  5. Deep Learning(深度学习)学习笔记整理系列之(七)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(六)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning(深度学习)学习笔记整理系列之(三)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(二)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. 让Linux修改IP、DNS等可以更简单

    修改IP: 可以用 netconfig,可惜每次都得输入完整的IP.掩码.网关和DNS. 不如直接 vi /etc/sysconfig/network-scripts/ifcfg-eth0 再 /et ...

  2. 摩根斯坦利 - 2016年09月8日 面试题 - HashMap

    摩根斯坦利 - 2016年09月8日 面试题: 给定一个 Map<Person, Object> map = new HashMap<Person, Object>(); 放入 ...

  3. GoF——组合模式

    组合模式:将对象组合成树形结构以表示“部分-真题”的结构层次.组合模式使得用户对单个对象和组合对象的使用具有一致性. 结构图: using System; using System.Collectio ...

  4. Linux中的那些英文缩写和她的含义们

    系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 打印工作路径. su:Swith user 切换用户,切换到roo ...

  5. QT中代码中与设计器中控件信号与SLOT连接(原来还可以这样连接)

    双击testqt.ui 托一个push button到窗体中,双击,可以输入字符 按F4或 menu->edit->edit signals/slots 定义SLOT 选择已定义好的SLO ...

  6. hibernate详解

    Hibernate原理与应用 主要内容 1.引入 2.安装配置 3.基本概念和CURD 4.HQL和Criteria 5.关联映射 6.继承映射 7.集合映射 8.懒加载 9.缓存 10.事务 11. ...

  7. oracle 建表后添加表注释及字段注释

    oracle添加表注释和表字段注释 创建Oracle数据库表时候加上注释 CREATE TABLE t1(id  varchar2(32) primary key,name VARCHAR2(8) N ...

  8. Android NDK 编译FFmpeg(不需要复杂的环境变量设置)

    环境: CentOS6.2——64位 借鉴:https://vec.io/posts/how-to-build-ffmpeg-with-android-ndk 在根目录下创建work文件夹:cd  / ...

  9. 数据库CRUD操作

    CRUD操作: C:create 增加数据: insert into 表名 values('N001','汉族') 普通 insert into 表名 values('','','') 如果有自增长列 ...

  10. append与after区别

    append() & prepend()实在元素内插入内容(该内容变成该元素的子元素或节点),after() & before()是在元素的外面插入内容(其内容变成元素的兄弟节点).