Theano - 数据类型
现在,您已经了解了 Theano 的基础知识,让我们从可用于创建表达式的不同数据类型开始。下表列出了 Theano 中定义的部分数据类型。
数据类型 | Theano 类型 |
---|---|
字节 | bscalar、bvector、bmatrix、brow、bcol、btensor3、btensor4、btensor5、btensor6、btensor7 |
16 位整数 | wscalar、wvector、wmatrix、wrow、wcol、wtensor3、wtensor4、wtensor5、wtensor6、wtensor7 |
32 位整数 | iscalar、ivector、imatrix、irow、icol、itensor3、itensor4、itensor5、itensor6、itensor7 |
64 位整数 | lscalar、lvector、lmatrix、lrow、lcol、ltensor3、ltensor4、ltensor5、ltensor6、ltensor7 |
浮点数 | fscalar、fvector、fmatrix、frow、fcol、ftensor3、ftensor4、ftensor5、ftensor6、ftensor7 |
double | dscalar, dvector, dmatrix, drow, dcol, dtensor3, dtensor4, dtensor5, dtensor6, dtensor7 |
complex | cscalar, cvector, cmatrix, crow, ccol, ctensor3, ctensor4, ctensor5, ctensor6, ctensor7 |
以上列表并不详尽,读者可以参考张量创建文档获取完整列表。
现在我将为您提供一些如何在 Theano 中创建各种数据变量的示例。
标量
要构造标量变量可以使用以下语法 −
语法
x = theano.tensor.scalar ('x') x = 5.0 print (x)
输出
5.0
一维数组
要创建一维数组,请使用以下声明 −
示例
f = theano.tensor.vector f = (2.0, 5.0, 3.0) print (f)f = theano.tensor.vector f = (2.0, 5.0, 3.0) print (f) print (f[0]) print (f[2])
输出
(2.0, 5.0, 3.0) 2.0 3.0
如果您执行 f[3],则会产生索引超出范围错误,如下所示 −
print f([3])
输出
IndexError Traceback (most recent call last) <ipython-input-13-2a9c2a643c3a> in <module> 4 print (f[0]) 5 print (f[2]) ----> 6 print (f[3]) IndexError: tuple index out of range
二维数组
要声明二维数组,请使用以下代码片段 −
示例
m = theano.tensor.matrix m = ([2,3], [4,5], [2,4]) print (m[0]) print (m[1][0])
输出
[2, 3] 4
5 维数组
要声明 5 维数组,请使用以下语法 −
示例
m5 = theano.tensor.tensor5 m5 = ([0,1,2,3,4], [5,6,7,8,9], [10,11,12,13,14]) print (m5[1]) print (m5[2][3])
输出
[5, 6, 7, 8, 9] 13
您可以使用数据类型 tensor3 代替 tensor5 来声明一个三维数组,使用数据类型 tensor4 来声明一个四维数组,依此类推,直到 tensor7。
复数构造函数
有时,您可能希望在单个声明中创建相同类型的变量。您可以使用以下语法来实现 −
语法
from theano.tensor import * x, y, z = dmatrices('x', 'y', 'z') x = ([1,2],[3,4],[5,6]) y = ([7,8],[9,10],[11,12]) z = ([13,14],[15,16],[17,18]) print (x[2]) print (y[1]) print (z[0])
输出
[5, 6] [9, 10] [13, 14]