TensorFlow入门(二)--Rank,Shape,Type

来源:互联网 发布:意大利签证 知乎 编辑:程序博客网 时间:2024/05/25 05:35

Tensor(张量)的Rank(阶)、Shape(形状)、Type(数据类型)

TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表.一个张量有一个静态类型和动态类型的维数.张量可以在图中的节点之间流通.



Rank(阶)

在TensorFlow系统中,张量的维数来被描述为.但是张量的阶和矩阵的阶并不是同一个概念.张量的阶(有时是关于如顺序度数或者是n维)是张量维数的一个数量描述.比如,下面的张量(使用Python中list定义的)就是2阶.

    t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

你可以认为一个二阶张量就是我们平常所说的矩阵,一阶张量可以认为是一个向量.对于一个二阶张量你可以用语句t[i, j]来访问其中的任何元素.而对于三阶张量你可以用't[i, j, k]'来访问其中的任何元素.

数学实例

Python 例子

0

纯量 (只有大小)

s = 483

1

向量(大小和方向)

v = [1.1, 2.2, 3.3]

2

矩阵(数据表)

m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

3

3阶张量 (数据立体)

t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]

n

n阶 (自己想想看)

....




 Shape(形状)

TensorFlow文档中使用了三种记号来方便地描述张量的维度:阶,形状以及维数.下表展示了他们之间的关系:

形状

维数

实例

0

[ ]

0-D

一个 0维张量. 一个纯量.

1

[D0]

1-D

一个1维张量的形式[5].

2

[D0, D1]

2-D

一个2维张量的形式[3, 4].

3

[D0, D1, D2]

3-D

一个3维张量的形式 [1, 4, 3].

n

[D0, D1, ... Dn]

n-D

一个n维张量的形式 [D0, D1, ... Dn].

形状可以通过Python中的整数列表或元祖(int list或tuples)来表示,也或者用TensorShape class.

例子:

>>> matrix=tf.constant([[1,2,3],[4,5,6]])>>> matrix<tf.Tensor 'Const_3:0' shape=(2, 3) dtype=int32>



Type(数据类型)

除了维度,Tensors有一个数据类型属性.你可以为一个张量指定下列数据类型中的任意一个类型:

数据类型

Python 类型

描述

DT_FLOAT

tf.float32

32 位浮点数.

DT_DOUBLE

tf.float64

64 位浮点数.

DT_INT64

tf.int64

64 位有符号整型.

DT_INT32

tf.int32

32 位有符号整型.

DT_INT16

tf.int16

16 位有符号整型.

DT_INT8

tf.int8

8 位有符号整型.

DT_UINT8

tf.uint8

8 位无符号整型.

DT_STRING

tf.string

可变长度的字节数组.每一个张量元素都是一个字节数组.

DT_BOOL

tf.bool

布尔型.

DT_COMPLEX64

tf.complex64

由两个32位浮点数组成的复数:实数和虚数.

DT_QINT32

tf.qint32

用于量化Ops的32位有符号整型.

DT_QINT8

tf.qint8

用于量化Ops的8位有符号整型.

DT_QUINT8

tf.quint8

用于量化Ops的8位无符号整型.

 

1 0
原创粉丝点击