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]