Theano一览

Theano是一个Python库,它允许你定义、优化和求值数学表达式,特别是具有多维数组(numpy.ndarray)的数学表达式。对于涉及大量数据的问题,使用Theano可以获得与手工编写的C实现不相上下的速度。它还可以通过利用最近的GPU超过CPU上的C多个数量级。

Theano将计算机代数系统(CAS)的各个方面与优化编译器的各个方面相结合。它还可以为许多数学运算生成定制的C代码。CAS与优化编译的这种组合对于复杂数学表达式重复求值并且求值速度很关键的任务特别有用。对于许多不同的表达式每个求值一次的情况,Theano可以最小化编译/分析的开销,但仍然提供诸如自动微分等符号特征。

Theano的编译器对这些符号表达式应用许多不同复杂度的优化。这些优化包括,但不限于:

  • 使用GPU进行计算
  • 恒定折叠
  • 合并相似的子图,避免冗余计算
  • 算术简化(例如x*y/x -> x, --x -> x
  • 在各种上下文中插入高效的BLAS操作(例如GEMM
  • 使用内存别名来避免计算
  • 使用就地操作,无论它涉不涉及到别名
  • 元素子表达式的循环融合
  • 数值稳定性的改进

Theano是在LISA实验室编写的,以支持高效机器学习算法的快速开发。Theano以希腊数学家命名,她可能是毕达哥拉斯的妻子。Theano根据BSD许可证发布。

先睹为快

这里是如何使用Theano的示例。它没有展示Theano的许多功能,但它具体说明了Theano是什么。

 1 import theano
 2 from theano import tensor
 3
 4 #声明两个浮点数类型的变量
 5 a=tensor.dscalar()
 6 b=tensor.dscalar()
 7
 8 #创建一个简单的表达式
 9 c=a+b
10
11 #将表达式转换成图函数,方便他们进行计算
12 f=theano.function([a,b],c)
13
14 #a=1.5,b=2.5,计算c
15 assert 4.0==f(1.5,2.5)

它做了什么其他库没做的?

Theano是一个Python库和优化编译器,用于处理和求值表达式,特别是矩阵表达式。矩阵的操作通常使用numpy包来完成,那么什么是Theano做的而Python和numpy没有做的呢?

  • 执行速度优化:Theano可以使用g++nvcc将表达式图的部分编译成CPU或GPU指令,它们运行起来比纯Python快得多。
  • 符号微分:Theano可以自动构建用于计算梯度的符号图。
  • 稳定性优化:Theano可以识别[某些]数值不稳定的表达式,并使用更稳定的算法计算它们。

最接近Theano的Python包是sympy。Theano比Sympy更注重张量表达,并有更多的机制进行编译。Sympy具有更复杂的代数规则,可以处理更多种类的数学运算(如序列,极限和积分)。

转载于:https://www.cnblogs.com/qniguoym/p/7660215.html

Theano at a Glance相关推荐

  1. Theano 中文文档 0.9 - 3. Theano一览

    3. Theano一览 译者:Python 文档协作翻译小组,原文:Theano at a Glance. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Pytho ...

  2. Theano 中文文档 0.9 - 1. 欢迎

    1. 欢迎 译者:Python 文档协作翻译小组,原文:Welcome. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人手紧缺,有兴 ...

  3. 技术 | Bengio终结Theano不是偶然,其性能早在Keras支持的四大框架中垫底

    作者 | Jasmeet Bhatia 编译 | KK4SBB 本文将对目前流行的几种Keras支持的深度学习框架性能做一次综述性对比,包括Tensorflow.CNTK.MXNet和Theano.作 ...

  4. win7上安装theano keras深度学习框架

    近期在学习深度学习,需要在本机上安装keras框架,好上手.上网查了一些资料,弄了几天今天终于完全搞好了.本次是使用GPU进行加速,使用cpu处理的请查看之前的随笔keras在win7下环境搭建 本机 ...

  5. 三、openstack安装之Glance篇

    一.glance简介 openstack镜像服务使用户能够发现.登记并检索虚拟机镜像,代号glance.glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索实际镜像.通过镜像 ...

  6. 深度学习算法实践(基于Theano和TensorFlow)

    深度学习算法实践(基于Theano和TensorFlow) 闫涛 周琦 著 ISBN:9787121337932 包装:平装 开本:16开 用纸:胶版纸 正文语种:中文 出版社:电子工业出版社 出版时 ...

  7. Theano 中文文档 0.9 - 7.2.5 循环

    7.2.5 循环 译者:Python 文档协作翻译小组,原文:Loop. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人手紧缺,有兴 ...

  8. Theano学习笔记(三)——图结构

    图结构(Graph Structures)这是理解Theano该基金会的内部运作. Theano编程的核心是用符号占位符把数学关系表示出来. 图结构的组成部分 如图实现了这段代码: importthe ...

  9. Theano - 循环

    Scan 复发(Recurrence)的一种常用形式,可以用于循环(looping) Reduction和map是scan的特例 可以根据一些输出序列scan一个函数(function),每一步都会生 ...

最新文章

  1. Little Sub and Counting
  2. busybox arm-linux-gcc 4.4.4库的路径,BUSYBOX编译错误及解决方法总结
  3. levedb 导入 mysql_LevelDB-初始篇
  4. 解决:Unable to access jarfile xxx-0.0.1-SNAPSHOT.jar
  5. wps临时文件不自动删除_电脑:让 Windows 10 系统自动清理临时文件
  6. 上海建桥学院linux网络管理实验报告,上海建桥学院信息技术系《操作系统(Linux).PDF...
  7. h5 fieldset
  8. maven mirror repository
  9. 谷歌开放语音识别 API,发力人工智能
  10. oj交java代码_UvaOJ java输入代码
  11. Java数组索引越界异常
  12. linux每个phy一个接口,mdio
  13. Windows10系统安装详细教程
  14. Vue 爬坑之旅 -- 用自定义指令解决 IOS 12 中键盘收起后页面底部有留白的问题
  15. Java上帝类(Object类)源码总结(1)
  16. HTTP状态码的含义
  17. Office 顿号怎么输
  18. 2.Buffer详解
  19. 【概率论与数理统计02】那些年,正态分布、指数分布、伽马分布、卡方分布之间的发生的那些事儿(下)
  20. 数据质量分析之信息调研

热门文章

  1. capture RGBD data with opencv4.1.1 from XTION2 on windows 10
  2. so(3) se(3) optimization
  3. Deformation Transfer for Triangle Meshes
  4. 基于深度神经网络的大规模植物分类
  5. 【matlab】结构体
  6. Github Star 4.6K,3.5M超超轻量中英文OCR模型开源,火了!
  7. Python 机器学习:多元线性回归
  8. 有效ip地址_计算机等级考试详解:用IP地址及域名访问web网站的正确说法
  9. gulp安装指定版本_对比webpack,你更应该先掌握gulp【10分钟教你彻底掌握gulp】
  10. python决策树分类案例_银行产品销售案例与决策树分类算法