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]