TensorFlow 是一个由 Google 开发的开源深度学习框架,它广泛应用于各种机器学习任务,特别是在深度学习模型的构建、训练和部署方面。TensorFlow 提供了强大的工具和库,使得开发者可以高效地构建神经网络,进行模型训练,并进行部署。
1. TensorFlow基础
1.1 TensorFlow简介
TensorFlow 是一个基于数据流图的计算框架,它通过图来表达计算过程,其中的节点表示操作(如加法、乘法等),而图中的边则表示张量(Tensor)在计算过程中的传递。TensorFlow 最初主要用于深度学习,但随着时间的发展,TensorFlow 也可以用于其他类型的计算任务。
1.2 张量(Tensor)
TensorFlow 中的核心概念是张量(Tensor)。张量可以被看作是多维数组,它可以是标量(0维)、向量(1维)、矩阵(2维)等。
创建张量:
import tensorflow as tf
# 创建一个常数张量
a = tf.constant([1, 2, 3])
print(a)
# 创建一个零张量
b = tf.zeros([2, 3])
print(b)
# 创建一个随机张量
c = tf.random.normal([3, 3])
print(c)
1.3 张量运算
TensorFlow 提供了丰富的张量运算操作,支持加法、乘法、矩阵乘法等常见的线性代数操作。
# 张量加法
x = tf.constant([1, 2, 3])
y = tf.constant([4, 5, 6])
z = x + y
print(z)
# 矩阵乘法
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
c = tf.matmul(a, b)
print(c)
1.4 自动求导(Gradient Tape)
TensorFlow 提供了一个强大的自动求导工具 GradientTape
,它可以跟踪 TensorFlow 运算的梯度,常用于训练神经网络时计算损失函数的梯度。
x = tf.Variable(3.0)
with tf.GradientTape() as tape:
y = x ** 2
# 计算梯度
dy_dx = tape.g