TensorFlow 02(张量)

一、张量

张量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)

猜你喜欢

转载自blog.csdn.net/peng_258/article/details/132823665