一、张量
张量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
1.1 张量的创建
创建张量
# 创建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)
1.2 转换为numpy
我们可将张量转换为numpy中的ndarray的形式,转换方法有两种,以张量rank_2_tensor为例:
np.array
np.array(rank_2_tensor)
Tensornumpy()
rank_2_tensor.numpy()
1.3 常用函数
我们可以对张量做一些基本的数学运算,包括加法、元素乘法和矩阵乘法等
# 定义张量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() # 最小值的索引
1.4 变量
变量是一种特殊的张量,形状是不可变,但可以更改其中的参数。定义时的方法是:
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)