TensorFlow 简介
TensorFlow 是一个由 Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习、神经网络和数值计算任务。其核心特点是灵活的计算图模型、跨平台支持(CPU/GPU/TPU)以及丰富的工具链生态系统。
以下通过关键概念和代码示例展示 TensorFlow 的核心功能:
计算图与张量
TensorFlow 使用计算图(Graph)表示数学运算,节点是操作(Operations),边是张量(Tensors)。张量是多维数组的抽象,可以表示标量、向量、矩阵等。
import tensorflow as tf
# 创建常量张量
a = tf.constant(3.0, dtype=tf.float32)
b = tf.constant(4.0)
c = tf.add(a, b) # 等价于 a + b
print("张量c:", c) # 输出: Tensor("Add:0", shape=(), dtype=float32)
即时执行模式
TensorFlow 2.x 默认启用即时执行(Eager Execution),无需构建静态计算图即可直接运行:
# 即时执行示例
x = tf.constant([[1.0, 2.0], [3.0, 4.0]])
y = tf.constant([[5.0, 6.0], [7.0, 8.0]])
z = tf.matmul(x, y) # 矩阵乘法
print("矩阵乘积:\n", z.numpy())
构建神经网络
以下是一个全连接神经网络的实现示例:
from tensorflow.keras import layers, models
# 定义模型
model = models.Sequential([
layers.Dense(64, activation='relu', input_shape=(784,)),
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 打印模型结构
model.summary()
数据管道
使用 tf.data
构建高效数据输入管道:
# 创建数据集
dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
dataset = dataset.shuffle(1000).batch(32).prefetch(tf.data.AUTOTUNE)
# 训练模型
model.fit(dataset, epochs=5)
自定义训练循环
需要更灵活控制时,可以手动编写训练逻辑:
optimizer = tf.keras.optimizers.Adam()
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy()
for epoch in range(5):
for x_batch, y_batch in dataset:
with tf.GradientTape() as tape:
logits = model(x_batch, training=True)
loss = loss_fn(y_batch, logits)
grads = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
模型保存与加载
TensorFlow 提供多种模型持久化方式:
# 保存整个模型
model.save('my_model.h5')
# 加载模型
new_model = tf.keras.models.load_model('my_model.h5')
GPU 加速
TensorFlow 自动检测可用 GPU 设备:
# 查看可用设备
print(tf.config.list_physical_devices('GPU'))
# 手动指定设备
with tf.device('/GPU:0'):
a = tf.constant([[1.0, 2.0], [3.0, 4.0]])
b = tf.matmul(a, a)
扩展工具
TensorFlow 生态系统包含多个高级组件:
- TensorBoard:可视化训练过程
- TF Lite:移动端部署
- TF Serving:生产环境模型服务
- TFX:端到端机器学习流水线
以上示例展示了 TensorFlow 的核心功能,其设计兼顾了灵活性和高性能,适合从研究原型到生产部署的全流程开发。