首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在GPU上运行,性能是NumPy的11倍,这个Python库你值得拥有

作者:吴茂贵,王冬,李涛,杨本法 如需转载请联系大数据(ID:hzdashuju) Theano开发者在2010年公布的测试报告中指出:在CPU上执行程序时,Theano程序性能是NumPy的1.8倍,...但最好使用工具来安装,这样可以避免很多程序依赖的麻烦,而且日后的软件升级维护也很方便。...在创建 Variables 之后,应用 Apply ops得到更多的变量,这些变量仅仅是一个占位符,在function中作为输入。...更新共享变量参数 在深度学习中通常需要迭代多次,每次迭代都需要更新参数。Theano如何更新参数呢? 在theano.function函数中,有一个非常重要的参数updates。...循环语句 scan是Theano中构建循环Graph的方法,scan是个灵活复杂的函数,任何用循环、递归或者跟序列有关的计算,都可以用scan完成。

3K40

Theano 中文文档 0.9 - 7.2.5 循环

Scan 重复的一般形式,可用于循环。 Reduction和map(在前面的维度上循环)是scan的特殊情况。 你沿着某个输入序列scan一个函数,在每个时间步骤产生输出。...这个函数可以看到你的函数的以前的K个时间步长。 sum()可以通过在一个列表上scan z + x(i)函数计算得到,其中初始状态为z=0。...通常,for循环可以表示为scan()操作,scan是Theano对循环最接近的实现。 使用scan比使用for循环的优点: 作为符号图一部分的迭代次数。 最小化GPU传输(如果涉及GPU)。...使用编译的Theano函数比在Python中使用for循环稍快。 可以通过检测所需的实际内存量来降低总体内存使用量。 完整的文档可以在库中找到:Scan。...原因是scan为其内部函数创建一个占位符变量,并且此占位符变量与将替换它的变量不具有相同的依赖关系。

44830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Theano学习笔记(一)——scan函数

    一 scan的介绍        函数scan是Theano中迭代的一般形式,所以可以用于类似循环(looping)的场景。...Reduction和map都是scan的特殊形式,即将某函数依次作用一个序列的每个元素上。但scan在计算的时候,可以访问以前n步的输出结果,所以比较适合RNN网络。        ...二 scan的一般形式 theano.scan() results, updates = theano.scan(fn = lambda y, p, x_tm2, x_tm1,A: y+p+x_tm2+...在内部在定义的fn一般用lambda来定义需要用到的参数,在外部就def好的函数,fn直接函数名即可。        构造出描述一步迭代的输出的变量。...sequences:scan进行迭代的变量;序列是 Theano 变量或者字典的列表,告诉程序 scan 必须迭代的序列,scan会在T.arange()生成的list上遍历。

    1.2K90

    Theano退役,Bengio发出告别信

    它是一个Python库,用来定义、优化和评估涉及多维数组的数学表达式。 在机器学习领域,Theano一直是最流行的CPU和GPU数学编译器之一。许多框架以及先进的机器学习模型都基于Theano构建。...知乎用户草莓大福就抱怨过上述涉及的Scan、调试困难等问题。而另一位用户邓博元则表示过:“Theano的结构、实现不一定是最优的,但现阶段只有它填补了这一空缺,而且相对成熟,所以大家都用它。”...在Theano背后,站着一群天才。例如不少人熟知的大神Yoshua Bengio,Ian Goodfellow,Pascal Lamblin等。...最后,附上Yoshua Bengio发出的告别信 亲爱的用户和开发者们, 在近10年的开发之后,我们很遗憾地宣布,未来几周1.0版本发布后,我们将结束Theano项目。...我们将继续提供最低限度的维护,确保Theano在未来一年中继续可用,但我们将不再主动开发新特性。

    76870

    【学习】 TensorFlow:最棒的深度学习加速器

    这样的库之后就可以接受符号函数并且在任何可以进行编译的后端下执行编译操作。这些操作可以用于CPU,GPU,或是异构计算的平台。...正如Matt在他的文章中准确指出的那样,TensorFlow不是这个大家庭中的第一位成员,Theano在2010年发表,就在伯克利发布Caffe之后不久,Caffe是一个在C++框架下主要用于卷积神经网络的高性能深度学习库...更近一步,TensorFlow紧紧跟随着Theano为先驱的界面问世了,TensorFlow的变量行为比较像Theano的共享变量。TensorFlow的占位符也和Theano的符号变量类似。...Theano有一个似乎广为人知的bug,每当在调用Scan函数时在函数调用语句里做了生成随机数的操作。函数返回的错误信息并不特别有用,我也没办法知道这个bug啥时能被解决掉,或者能不能被解决。...这很讨人厌,不仅没必要还造成浪费,更令人担心的是,这种情况导致了一种环境,在该环境中,很多最有用的技术还依赖于瞬息万变的函数库之上。

    62950

    Theano 中文文档 0.9 - 7.2.3 Theano中的导数

    有关微分内部工作原理的其他信息,也可以在更高级的教程扩展Theano中找到。 计算Jacobian 在Theano的用语中,术语Jacobian表示函数相对于其输入的一阶偏导数的张量。...为了手动计算某些函数y相对于某个参数x的雅可比矩阵,我们需要使用scan。我们所做的是循环y中的条目,并计算y [i]相对于x的梯度。...注意 scan是Theano中的通用操作,允许以符号方式写入各种循环方程。创建符号循环(并优化它们的性能)是一项艰巨的任务,人们正在努力提高scan的性能。我们将在本教程后面回到scan。...其中一个是你不能重写上面的Jacobian表达式为theano.scan(lambda y_i,x: T.grad(y_i,x), sequences=y, non_sequences=x),即使从scan...原因是y_i将不再是x的函数,而y[i]仍然是。 计算Hessian 在Theano中,术语Hessian具有通常的数学概念:它是由函数的二阶偏导数组成的矩阵,该函数的输出为标量和输入为向量。

    62130

    黄金三镖客之TensorFlow版

    当涉及到机器学习时,很容易把注意力集中于技术上(特征、功能、基准等)。但是优秀的程序员都知道,编写人们愿意使用的代码要比机器可以编译执行的代码要难上许多。...在v0.8版本中,已经支持了分布式训练。 支持队列,在运算图上进行数据加载和预处理等操作。 使用TensorBoard可视化运算图。在构建、调试新模型时,很容易迷失方向。...Skflow将TensorFlow方法包装成了scikit-learn风格的API。在我看来,与导入、内嵌各种scikit-learn指标的Python代码相比,这么做有点奇怪。...PrettyTensor提供了具有类似张量行为的东西,有一种可链接的语法,你可以快速构建特定类型的模型。...当你在TensorFlow中发现一些与你预期不符的东西,或者你在学习某个方法或某些参数的怪癖行为时,在Github上搜索测试,看看测试是如何做的! 恶 与Theano相比仍缺少RNN。

    54130

    开发 | Theano停止更新之后,开发者们怎么说?

    关于深度学习的框架之争一直都没停止过,每隔一阵大家就要进行一次框架大讨论: TensorFlow的使用者虽多,又有谷歌的背书,但真的很!难!用!...近日,Yoshua Bengio教授的一封邮件又让对框架的讨论迅速升温,在邮件中,他表示, 他们将会停止对Theano的更新,接下来,会以最低成本对Theano进行为期一年的维护,之后就将彻底与Theano...Theano早期的开发者有Yoshua Bengio和Ian Goodfellow,由于出身学界,它最初是为学术研究而设计。当它与其他深度学习库结合起来之后,会非常适合于数据探索。...曾经接触过Theano的一位开发者表示,Theano的速度在当时来说,与同期的Torch相比并不算快,更比不上现在新出的框架。此外,在代码实现上,比起其他框架,Theano也不是很直接。...但是时代的潮流在哪里也不是随时都能看出来的,也没法时刻保持自己在前沿,但好在掌握了一个库之后再换另一个库并不是很费劲。

    1.1K100

    回顾2016深度学习十大框架

    在闲暇之余,我经常听到人们谈论深度学习,比如“我该从哪里开始呢?TensorFlow是现在最流行的吧?”、“我听说Caffe很常用,但感觉有点难了”等。 ?...在结束了优达学城(Udacity)的深度学习课程之后,我感觉TensorFlow虽然是一个非常好的框架,但是却很低层。使用TensorFlow需要写大量的代码,你必须一遍又一遍的重复不必要的工作。...在我们实验室的实验中,CaffeNet架构的训练时间比在Keras(使用了Theano后端)中少了5倍。Caffe的缺点是不够灵活。...不同于通用的CPUs,也不同于在诸多限制条件下也很通用的GPUs,TPUs是具有特定用途的定制硬件,其目的就是为加速TensorFlow的计算。...我记得,在亚马逊宣布选择mxnet作为其深度学习的参考库之后,一些开发者曾向我谈到,亚马逊没有选择TensorFlow是一件非常奇怪的事情。然而,我并不为此感到惊讶。

    748110

    Theano调试技巧

    以下的技巧和代码均在Theano 0.8.2 上测试通过,不保证在更低的版本上也可以适用。 如何定位出错位置 Theano的网络在出错的时候,往往会提供一些出错信息。...Theano在0.4.0以后,加入了test values机制,简单来说,就是在计算图编译之前,我们可以给symbolic提供一个具体的值,即test_value,这样Theano就可以将这些数据,代入到...(input[0].shape[0] = 2, input[1].shape[0] = 3) 可以看到,第一个z的值[2,4]被print了出来,同时在test_value的帮助下,错误信息还告诉我们在执行...使用Print 不过test_value对scan支持的不好,而如果网络包含RNN的话,scan一般是不可或缺的。那么如何打印出scan在循环过程中的中间结果呢?...不过下面有几点需要注意一下: 因为theano是基于计算图的,因此各变量在计算图中被调用执行的顺序,不一定和原代码的顺序一样,因此变量Print出来的顺序也是无法保证的。

    2.1K90

    Theano 中文文档 0.9 - 2. 发行说明

    它修复了MacOS X上的编译问题,使用XCode 7.3的命令行工具,它是在Theano 0.8.0之后不久发布的。 Theano 0.8(2016年3月21日) 我们建议大家更新到这个版本。...强调: Python 2和3支持相同的代码库 更快的优化 集成cuDNN以获得更好的GPU性能 许多Scan改进(执行速度,…) optimizer = fast_compile将计算移动到GPU。...theano.tensor.repeat在GPU上工作 BatchedDot在GPU和CPU上更快。 更快的batched_tensordot并使其在GPU上工作。...警告未知或拼写错误的theano配置变量 theano.tensor.tile更新(接受符号代表,工作在GPU上) 扫描如何有严格的标志。如果设置为True,这使扫描构建更快,并可以使执行更快。...theano.tensor.signal.conv2d(2d,2d)输出2d结果 支持更多卷积参数 图像的双线性插值 加速: 在GPU上更快的SetSubtensor。 在GPU上支持更多缩减模式。

    39720

    深度 | 对比深度学习十大框架:TensorFlow最流行但并不是最好

    在结束了Udacity 的Deep Learning课程之后,我的感觉是 TensorFlow 是一个非常好的框架,但是却非常低层。...在我们实验室的实验中,CaffeNet 架构的训练时间在 Caffe 中比在 Keras 中(使用了 Theano 后端)少 5 倍。Caffe 的缺点是它不够灵活。...Torch 是一个很著名的框架,因巨头 Facebook 的人工智能研究所用的框架是 Torch,并且在被谷歌收购之前 DeepMind 也是用的 Torch(收购之后 DeepMind 转向了 TensorFlow...在公开的基准测试上的表现来看,这个工具似乎很强劲,支持纵向和横向的推移。 目前为止,Cognitive Toolkit 似乎不是很流行。...但是对我来说,一个背靠微软研究的框架特别强调自己的推移能力让我觉得有些奇怪,毕竟微软研究团队可是在语音识别上打破世界纪录并逼近人类水准。

    1.2K70

    对比深度学习十大框架:TensorFlow最流行但并不是最好

    在结束了 Udacity 的 Deep Learning 课程之后,我的感觉是 TensorFlow 是一个非常好的框架,但是却非常低层。...在我们实验室的实验中,CaffeNet 架构的训练时间在 Caffe 中比在 Keras 中(使用了 Theano 后端)少 5 倍。 Caffe 的缺点是它不够灵活。...Torch 是一个很著名的框架,因巨头 Facebook 的人工智能研究所用的框架是 Torch,并且在被谷歌收购之前 DeepMind 也是用的 Torch(收购之后 DeepMind 转向了 TensorFlow...在公开的基准测试上的表现来看,这个工具似乎很强劲,支持纵向和横向的推移。 目前为止,Cognitive Toolkit 似乎不是很流行。...但是对我来说,一个背靠微软研究的框架特别强调自己的推移能力让我觉得有些奇怪,毕竟微软研究团队可是在语音识别上打破世界纪录并逼近人类水准。

    71160

    干货丨从TensorFlow到PyTorch:九大深度学习框架哪款最适合你?

    用一个实用脚本,Caffe 上的模型可轻易地被转变到 Caffe2 上。Caffe 设计的选择使得它处理视觉类型的难题时很完美。...期待不久之后能看到 Caffe 2 超越 Caffe,就像它宣称的那样在深度学习社区流行。...Theano 支持快速开发高效的机器学习算法,在 BSD 协议下发布。 Theano 的架构如同一个黑箱;整个代码库和接口使用 Python,其中 C/CUDA 代码被打包成 Python 字符串。...Theano 开创了将符号图用于神经网络编程的趋势。Theano 的符号式 API 支持循环控制(即 scan),这使得实现 RNN 容易且高效。...Theano 缺乏分布式应用程序管理框架,只支持一种编程开发语言。Theano 是很好的学术研究工具,在单个 CPU 上运行的效率比 TensorFlow 更有效。

    1.5K40

    资源 | 从TensorFlow到PyTorch:九大深度学习框架哪款最适合你?

    用一个实用脚本,Caffe 上的模型可轻易地被转变到 Caffe2 上。Caffe 设计的选择使得它处理视觉类型的难题时很完美。...期待不久之后能看到 Caffe 2 超越 Caffe,就像它宣称的那样在深度学习社区流行。...Theano 支持快速开发高效的机器学习算法,在 BSD 协议下发布。 Theano 的架构如同一个黑箱;整个代码库和接口使用 Python,其中 C/CUDA 代码被打包成 Python 字符串。...Theano 开创了将符号图用于神经网络编程的趋势。Theano 的符号式 API 支持循环控制(即 scan),这使得实现 RNN 容易且高效。...Theano 缺乏分布式应用程序管理框架,只支持一种编程开发语言。Theano 是很好的学术研究工具,在单个 CPU 上运行的效率比 TensorFlow 更有效。

    1K70

    功成身退:Yoshua Bengio宣布即将终止Theano的开发和维护

    【新智元导读】今天,Theano的开发与维护者之一 Pascal Lamblin 贴出了一封邮件:Yoshua Bengio 宣布在发布Theano 1.0版本之后,终止Theano的开发和维护。...Theano是Python的一个数值计算库。在Theano中,计算是使用NumPy-esque语法来表示的,编译后可以在CPU或GPU架构上高效运行。...今天,Theano的开发与维护者之一 Pascal Lamblin 贴出了一封邮件:Yoshua Bengio 宣布在发布Theano 1.0版本之后,终止Theano的开发和维护。...以下是邮件内容: 亲爱的用户和开发者: 经过近十年的开发,我们很遗憾地宣布,我们将在Theano 1.0版本发布后终止Theano的开发。Theano 1.0版本将在接下来的几周内发布。...我们很自豪的是,Theano这些年来所提出的大多数创新,现在已经被其他框架采用和完善。

    47780

    安装Theano和keras

    最重要的是,很多优化程序已经集成到Theano库中,它能够优化你的计算量并让你的运行时间保持最低。 如果速度的提升还不能满足你,它还内置支持使用CUDA在GPU上执行那些所有耗时的计算。...所有的这一切仅仅只需要修改配置文件中的标志位即可。在CPU上运行一个脚本,然后切换到GPU,而对于你的代码,则不需要做任何变化。...它把所有的要点使用小类封装起来,能够很容易地组合在一起并创造出一种全新的模型。...我的Theano版本是0.7.0,我的这份代码也会上传CSDN,有兴趣的可以下载看看。 一切正常运行之后,结果貌似还不错,10次epoch之后,成功率大概97%左右,上个截图: ?...执行之后,将Theano目录下的theano目录拷贝到python安装目录下的dist-package下就可以了,我的机器是/usr/lib/python2.7/dist-packages 到此,咱们改下代码运行下

    1.4K10

    九大深度学习框架

    用一个实用脚本,Caffe 上的模型可轻易地被转变到 Caffe2 上。Caffe 设计的选择使得它处理视觉类型的难题时很完美。...期待不久之后能看到 Caffe 2 超越 Caffe,就像它宣称的那样在深度学习社区流行。...Theano 支持快速开发高效的机器学习算法,在 BSD 协议下发布。 Theano 的架构如同一个黑箱;整个代码库和接口使用 Python,其中 C/CUDA 代码被打包成 Python 字符串。...Theano 开创了将符号图用于神经网络编程的趋势。Theano 的符号式 API 支持循环控制(即 scan),这使得实现 RNN 容易且高效。...Theano 缺乏分布式应用程序管理框架,只支持一种编程开发语言。Theano 是很好的学术研究工具,在单个 CPU 上运行的效率比 TensorFlow 更有效。

    1.1K60

    动态 | 深度学习框架Theano 宣布完成历史使命,即将退役

    AI科技评论按:作为七大深度学习框架之一的Theano在今天宣布即将不再更新,这也就意味着它将退出深度学习框架的竞争行列。...邮件的大概意思就是说, Theano 在 1.0 版本发布之后,未来将终止开发,但仍会以最小成本维护一年。也就是说Theano在未来还可以用,但MILA团队将不再更新版本了。...开发者对其兴趣度排名也不是很高 但开发者们对Theano的历史贡献表示一致认可,以下截取三位开发者的评论截图 Theano为深度学习发展做出了重大贡献,它有着很详尽的文档教程,很容易被初学者理解和实现。...最后附上AI科技评论对Yoshua Bengio教授的原邮件的翻译: 尊敬的用户和开发人员, 经过近十年的发展,我们很遗憾地宣布, 未来几周,在Theano开发1.0版本发布后, 我们将终结Theano...在这一背景下,我们认为继续维护 Theano 不再是推动全新研究与应用的最佳方式。即使来自学界、业界的贡献与支持在不断增加,但维持陈旧的代码库已经成为了创新的阻碍。

    672150
    领券