theano学习】的更多相关文章

Theano 学习笔记(一) theano 为什么要定义共享变量? 定义共享变量的原因在于GPU的使用,如果不定义共享的话,那么当GPU调用这些变量时,遇到一次就要调用一次,这样就会花费大量时间在数据存取上,导致使用GPU代码运行很慢,甚至比仅用CPU还慢. 共享变量的类型必须为floatX 因为GPU要求在floatX上操作,所以所有的共享变量都要声明为floatX类型 shared_x = theano.shared(numpy.asarray(data_x, dtype=theano.co…
降噪自动编码器是经典的自动编码器的一种扩展,它最初被当作深度网络的一个模块使用 [Vincent08].这篇指南中,我们首先也简单的讨论一下自动编码器. 自动编码器 文献[Bengio09] 给出了自动编码器的一个简介.在编码过程,它可以把输入$\mathbf{x} \in [0,1]^d$映射到一个隐式表达$\mathbf{y} \in [0,1]^{d'}$.映射关系定义如下: $$\mathbf{y} = s(\mathbf{W}\mathbf{x} + \mathbf{b})$$ 其中,…
catalogue . 引言 . LSTM NETWORKS . LSTM 的变体 . GRUs (Gated Recurrent Units) . IMPLEMENTATION GRUs 0. 引言 In this post we’ll learn about LSTM (Long Short Term Memory) networks and GRUs (Gated Recurrent Units).  LSTMs were first proposed in 1997 by Sepp Ho…
如下图所示(回归的过拟合问题):如果机器学习得到的回归为下图中的直线则是比较好的结果,但是如果进一步控制减少误差,导致机器学习到了下图中的曲线,则100%正确的学习了训练数据,看似较好,但是如果换成另外一批数据,则不能较好的反应数据,造成过大的误差,这就是过拟合问题 再看下图这是分类问题的过拟合问题 2. 正规化方法 (1)l1正规化:使用权重绝对值和的方式惩罚误差 (2)l2正规化:使用权重平方和的方式惩罚误差 3. 代码实现: from __future__ import print_fun…
写在前面的废话: 出了托福成绩啦,本人战战兢兢考了个97!成绩好的出乎意料!喜大普奔!撒花庆祝! 傻…………寒假还要怒学一个月刷100庆祝个毛线………… 正题: 题目是CNN,但是CNN的具体原理和之后会写一篇博客在deeplearning目录下详细说明. 简单地说,CNN与NN相比独特之处在于用部分连接代替全链接,并用pooling来对数据进行降维,这样做有几个好处: 对于大图像来说所需训练的参数大大减少 获取图像的部分特征而非全局特征 pooling使得网络的输出结果具有一定的平移和遮挡不变…
import numpy import theano.tensor as T from theano import function x = T.dscalar('x') y = T.dscalar('y') z = x + y f = function([x, y], z)numpy.allclose(f(16.3, 12.1), 28.4) 输出为truenumpy.allclose(z.eval({x:16.3, y:12.1}, 28.4)) 输出为true tensor:高维数组,T…
(1)theano主要支持符号矩阵表达式 (2)theano与numpy中都有broadcasting:numpy中是动态的,而theano需要在这之前就知道是哪维需要被广播.针对不同类型的数据给出如下的一张表,基本类型包括scalar.vector.row.col.matrix.tensor3.tensor4,然后有整形int对应的8.16.32.64位分别为b.w.i.l:float类型对应的32.64位为f.d:complex类型对应的64.128位为c.z. Constructor dt…
有了前面的准备,能够用Theano实现一个逻辑回归程序.逻辑回归是典型的有监督学习. 为了形象.这里我们如果分类任务是区分人与狗的照片. 首先是生成随机数对象 importnumpy importtheano importtheano.tensor as T rng= numpy.random 数据初始化 有400张照片,这些照片不是人的就是狗的. 每张照片是28*28=784的维度. D[0]是训练集.是个400*784的矩阵,每一行都是一张照片. D[1]是每张照片相应的标签.用来记录这张照…
图结构(Graph Structures)这是理解Theano该基金会的内部运作. Theano编程的核心是用符号占位符把数学关系表示出来. 图结构的组成部分 如图实现了这段代码: importtheano.tensor as T x= T.matrix('x') y= T.matrix('y') z= x + y 变量节点(variable nodes) 红色表示. 变量节点都有owner.当中x与y的owner为none. z的owner为apply. 操作节点(op nodes) 绿色表示…
标量相加 import theano.tensor as T from theano import function x = T.dscalar('x') y = T.dscalar('y') z = x + y f = function([x, y], z) 输入定义两个符号变量来取代数值,输出是一个0维的numpy.ndarray数组. 矩阵相加 把输入类型换一下即可了,矩阵假设维数不同,会遵循NumPy的广播规则. import theano.tensor as T from theano…