摘要:两个标量的加法为了让我们开始使用,以及感受是如何工作的。接下来,我们构造一个简单的函数加法。换句话说,均为变量对象。在中,所有的符号必须定义类型。表示双精度的维数组标量,他是中的类型不是一个类。
两个标量的加法
为了让我们开始使用Theano,以及感受theano是如何工作的。接下来,我们构造一个简单的函数:加法。
两个标量的加法import numpy import theano.tensor as T import theano from theano import function # 定义两个符号(变量)x, y来表示你想实施加法的数。 # 换句话说, x,y,z均为变量对象。 # 在Theano中,所有的符号必须定义类型。 # T.dscalar: 表示双精度(doubles)的0维数组(标量),他是Theano中的类型(Type) x = T.dscalar("x") y = T.dscalar("y") z = x + y # dscalar不是一个类(class)。因此,事实上x,y都不是dscalr的实例。 # 它们是TensorVariable的实例。 # 然而,x,y被赋值为theano的dscalar类型。 type(x) # theano.tensor.var.TensorVariable x.type # TensorType(float64, scalar) T.dscalar # TensorType(float64, scalar) x.type is T.dscalar # True # 在你运行f时,你会注意到有些延迟 # 因为f正在被编译为C代码 f = function([x, y], z) f(2, 3) numpy.allclose(f(16.3, 12.1), 28.4) numpy.allcolse(z.eval({x: 16.3, y: 12.1}), 28.4)两个矩阵的加法
x = T.dmatrix("x") y = T.dmatrix("y") z = x + y f = function([x, y], z) f([[1, 2], [3, 4]], [[10, 20], [30, 40]])可以用到的类型(type):
byte: bscalar, bvector, bmatrix, brow, bcol, btensor3, btensor4, btensro5
16-bit intergers: wscalar, wvector, wmatrix, wrow, wcol, wtensor3, wtensor4, wtensor5
32-bit intergers: iscalar, ivector, imatrix, irow, icol, itensor3, itensor4, itensor5
64-bit intergers: lscalar, lvector, lmatrix, lrow, lcol, ltensor3, ltensor4, ltensor5
float: fscalar, fvector, fmatrix, frow, fcol, ftensor3, ftensor4, ftensor5
double: dscalar, dvector, dmatrix, drow, dcol, dtensor3, dtensor4, dtensor5
complex: cscalar, cvector, cmatrix, crow, ccol, ctensor3, ctensor4, ctensor5
练习a = theano.tensor.vector() # 声明一个变量 out = a + a ** 10 # 构造一个符号表达式 f = theano.function([a], out) # 编译一个函数 print(f([0, 1, 2]))
修正并执行上面的代码,使得其能够计算:a ^ 2 + b ^ 2 + 2ab
a = theano.tensor.vector() b = theano.tensor.vector() out1 = a ** 2 + b ** 2 + 2 * a * b out2 = (a + b) ** 2 f1 = theano.function([a, b], out1) f2 = theano.function([a, b], out2) print(f1([0, 1], [1, 2])) print(f2([0, 1], [1, 2]))
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38635.html
摘要:在上篇文章里,为大家推荐了一些数学学习的软件和微积分线性代数概率统计的学习视频,今天再推荐一些精心挑选的经典教材,并为大家提供电子书的下载链接,和视频搭配起来一起学习,效果会更好。我们要使用的以及等都包含在里面,无需额外下载。 在上篇文章里,为大家推荐了一些数学学习的软件和微积分、线性代数、概率统计的学习视频,今天再推荐一些精心挑选的经典教材,并为大家提供电子书的下载链接,和视频搭配起...
摘要:的符号运算如果之前是学数学相关专业了解计算机代数系统,就会对数学符号的运算比较熟悉,而如果之前是程序员,可能会有点不太明白,下面我们就来了解一下。 在我们初、高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题、不断运算上,计算方法、运算技巧、笔算能力以及数学公式的记忆仿佛成了我们学习数学的全部。这些记忆和技巧没几年就忘掉了,...
阅读 1596·2021-09-08 10:42
阅读 3585·2021-08-11 10:23
阅读 3915·2019-08-30 14:10
阅读 2703·2019-08-29 17:29
阅读 3070·2019-08-29 12:50
阅读 616·2019-08-26 13:36
阅读 3419·2019-08-26 11:59
阅读 1470·2019-08-23 16:23