Theano - 数据类型
现在,您已经了解了 Theano 的基础知识,让我们从可用于创建表达式的不同数据类型开始。下表提供了 Theano 中定义的数据类型的部分列表。
数据类型 | 西亚诺型 |
---|---|
字节 | b标量、b向量、b矩阵、眉毛、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 位整数 | l标量、l向量、l矩阵、lrow、lcol、ltensor3、ltensor4、ltensor5、ltensor6、ltensor7 |
漂浮 | fscalar、fvector、fmatrix、frow、fcol、ftensor3、ftensor4、ftensor5、ftensor6、ftensor7 |
双倍的 | d标量、d向量、d矩阵、drow、dcol、dtensor3、dtensor4、dtensor5、dtensor6、dtensor7 |
复杂的 | 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来声明3维数组,使用数据类型tensor4声明4维数组,依此类推,直到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]