张量Tensor
张量是一个多维数组。与NumPy ndarray对象类似,tf.Tensor对象也具有数据类型和形状。如下图所示:

此外,tf.Tensors可以保留在GPU中。TensorFlow提供了丰富的操作库 (tf.add,tf.matmul,tf.linalg.inv等),它们使用和生成tf.Tensor。在进行张量操作之前先导入相应的工具包:
- import tensorflow as tf
- import numpy as np
创建张量
- # 创建int32类型的8维张量,即标量
- rank_0_tensor = tf.constant(4)
- print(rank__tensor)
-
- # 创建float32类型的1维张量
- rank_1_tensor = tf.constant([2.0,3.,4.0])
- print(rank_1_tensor)
-
- # 创建float16类型的二维张量
- rank_2_tensor = tf.constant([[1,2],
- [3,4],
- [5,6]],dtype=tf.float16)
- print(rank_2_tensor)


我们可将张量转换为numpy中的ndarray的形式,转换方法有两种,以张量rank_2_tensor为例:
np.array
np.array(rank_2_tensor)
Tensornumpy()
rank_2_tensor.numpy()
我们可以对张量做一些基本的数学运算,包括加法、元素乘法和矩阵乘法等
- # 定义张量a和b
- a = tf.constant([[1,2],[3,4])
- b = tf.constant([[1,1],[1,1])
-
- print(tf.add(a,b),"\n") # 计算张量的和
- print(tf.multiply(a,b),"\n") # 计算张量的元素乘法
- print(tf.matmul(a,b),“\n") # 计算乘法
另外张量也可用于各种聚合运算:
- tf.reduce_sum()#求和
- tf.reduce_mean()#平均值
- tf.reduce_max()#最大值
- tf.reduce_min()#最小值
- tf.argmax() # 最大值的索引
- tf.argmin() # 最小值的索引
变量是一种特殊的张量,形状是不可变,但可以更改其中的参数。定义时的方法是:
my_variable = tf.Variable([[1.0,2.0],[3.0,4.0]])
我们也可以获取它的形状,类型及转换为ndarray
- print("Shape:",my_variable.shape)
- print("DType:",my_variable.dtype)
- print("As NumPy:“,my_variable.numpy)