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

双精度浮点数

dscalar, dvector, dmatrix, 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]
广告