持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第15天,点击查看活动详情
注意:本文使用tensorflow1.x版本进行演示
使用本地Jupyter Notebook搭载TensorFlow相关库进行操作
1. 张量
1.1 张量的基本属性
在TensorFlow中,张量就是一个n维数组。张量(Tensor)具有两个重要的属性,分别是数据类型(type)和形状(shape)
- 一个数字:标量/纯量,0阶张量
- 一维数组:向量,1阶张量,例如:[1,1,1]
- 二维数组:矩阵,2阶张量,例如:[[1,1,1], [2,2,2]]
- n维数组:张量,n是任意的,张量是比较宽泛的叫法,以上都可以看成是张量。
如下图所示:分别表示指令名称、形状和类型
下面,我们将对不同形状的张量进行演示,打印出其属性(类型和形状)
具体代码如下所示:
- 创建三个张量
- 分别为0阶、1阶、2阶张量
def tensor_demo():
"""
张量的演示
"""
tensor1 = tf.constant(4.0) # 标量
tensor2 = tf.constant([1,2,3]) # 向量
tensor3 = tf.constant([[1],[2],[3]]) # 二阶张量
print(tensor1)
print(tensor2)
print(tensor3)
tensor_demo()
运行结果如下所示:
- 其中(3,1)表示三行一列
- 标量的形状显示为(),空元组
- 因为创建张量的时候没有指定张量类型,则根据传入的数据元素的类型就是张量的类型
- 默认:整型tf.int32
- 默认:浮点型tf.float32
1.2 张量的创建
1.2.1 创建固定值张量
tf.zeros(shape, dtype=tf.float32, name=None)
- 创建所有元素设置为零的张量。
- shape指定形状
- dtype指定数据类型
创建全0张量代码演示如下所示:
a1 = tf.zeros(shape=[5,5])
sess = tf.Session()
# 查看a1的值
print(a1.eval(session = sess))
运行结果如下图所示:
tf.ones(shape, dtype=tf.float32, name=None)
- 创建一个所有元素设置为1的张量
- shape指定想要创建的张量形状
- dtype指定数据类型
创建全1张量代码演示如下所示:
a2 = tf.ones(shape=[3,2,5])
sess = tf.Session()
# 查看a2的值
print(a2.eval(session = sess))
运行结果如下图所示:
tf.constant(value,dype=None, shape=None, name='Const)
- 创建一个常数张量
1.2.2 创建随机张量
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
- 创建符合正态分布的张量
- mean:均值
- stddev:标准差