1.张量
张量可以说是TensorFlow的标志,因为整个框架的名称TensorFlow就是张量流的意思,全面的认识一下张量。在TensorFlow程序使用tensor数据结构来代表所有的数据,在计算图中,操作之间的数据都是Tensor,Tensor可以看做n维的数组或列表,每个tensor包含了类型(type),阶(rank),和形状(shape)。
2.tensor类型
tensor的类型主要有如下:
tf.float32 :32位浮点型
tf.float64 :64 位浮点型
tf.int64 :64位有符号整型
tf.int32 :32位有符号整型
tf.int16 :16位有符号整型
tf.int8 :8位有符号整型
tf.uint8 :8位无符号整型
tf.string :可变长度的字节数组
tf.bool :布尔型
tf.complex64 :两个32位浮点型组成的复数:实部和虚部
rank(阶)
rank(阶)指的就是维度,可以通过观察它的括号层数,比如张量[ [1,2,3], [2,3,4], [3,4,5] ]的阶为2,标量,向量,矩阵的阶数分别为0,1,2。
shape(形状)
shape用于描述张量内部的组织关系,形状通常可以用整数列表或者元组来表示,也可以用TensorFlow中的相关形状函数来表示。
张量的相关操作
张量的相关操作包括类型操作,数字操作,形状变换,数据操作
类型操作
if __name__ == '__main__': with tf.Session() as sess: print(sess.run(tf.string_to_number('123.456'))) # 将字符转为数字 print(sess.run(tf.to_double(3))) # 转为浮点型 print(sess.run(tf.to_int32(3.1415))) # 转为整型 print(sess.run(tf.cast(3.1415, tf.int32))) # 将类型转为指定类型
import tensorflow as tf if __name__ == '__main__': with tf.Session() as sess: print(sess.run(tf.ones([2, 3], dtype=tf.float32))) # 生成全1的数据 print(sess.run(tf.zeros([2, 3], dtype=tf.float32))) # 生成全0的数据 print(sess.run(tf.ones_like([1, 2, 3, 4]))) # 生成指定形状的全1数据 print(sess.run(tf.zeros_like([2, 3, 4, 5]))) # 生成指定形状的全0数据 print(sess.run(tf.fill([2, 2], 6))) # 使用指定值填充形状 print(sess.run(tf.constant((2, 3), 3))) # 生成常量 print(sess.run(tf.random_normal([3, 3], mean=2.5, stddev=1.0, dtype=tf.float32, )))
太多了。。。。