人工智能学习笔记 - 编程与工具 - 深度学习框架
深度学习框架用于构建、训练和部署神经网络模型,是现代人工智能(尤其是计算机视觉、自然语言处理、语音识别)的核心基础设施。
深度学习框架概述
深度学习框架主要解决以下问题:
- 张量(Tensor)计算与自动求导
- 神经网络结构的定义与组合
- 模型训练、优化与评估
- GPU / 多卡 / 分布式加速
- 模型保存、加载与部署
目前主流框架为 PyTorch 与 TensorFlow / Keras。
PyTorch
PyTorch 是当前学术界和研究领域最流行的深度学习框架,以“灵活、直观”著称。
核心特点
-
动态图(Dynamic Graph)
- 代码即计算图,便于调试
- 支持 Python 原生控制流(if / for)
-
自动求导(Autograd)
- 自动计算反向传播梯度
-
张量计算
- 类似 NumPy,但支持 GPU 加速
基本组件
torch.Tensor:核心数据结构torch.nn:神经网络模块(层、损失函数)torch.optim:优化器(SGD、Adam 等)torch.utils.data:数据加载与批处理torch.cuda:GPU 支持
简单示例(线性模型)
import torch
import torch.nn as nn
model = nn.Linear(10, 1) # 定义模型
criterion = nn.MSELoss() # 损失函数
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
x = torch.randn(32, 10)
y = torch.randn(32, 1)
pred = model(x)
loss = criterion(pred, y)
loss.backward() # 反向传播
optimizer.step() # 参数更新
optimizer.zero_grad() # 清空梯度
TensorFlow / Keras
TensorFlow 是工业界广泛使用的深度学习框架,Keras 是其高级 API,强调易用性与工程化。
TensorFlow 特点
-
静态图 + 动态图(TF 2.x)
- 默认启用动态图(Eager Execution)
-
工业级生态
- 支持大规模部署、移动端、Web
-
跨平台
- CPU / GPU / TPU
Keras(tf.keras)
Keras 是 TensorFlow 官方推荐的高层接口,用于快速构建神经网络。
核心优势
- API 简洁、学习成本低
- 高度模块化
- 适合快速原型开发
简单示例(Keras)
from tensorflow import keras
from tensorflow.keras import layers
model = keras.Sequential([
layers.Dense(64, activation="relu"),
layers.Dense(1)
])
model.compile(
optimizer="adam",
loss="mse",
metrics=["mae"]
)
model.fit(x_train, y_train, epochs=10, batch_size=32)
PyTorch vs TensorFlow / Keras(对比)
| 对比维度 | PyTorch | TensorFlow / Keras |
|---|---|---|
| 计算图 | 动态图 | 动态图(TF 2.x) |
| 学习曲线 | 较平缓(偏代码) | 非常友好 |
| 调试体验 | 优秀 | 良好 |
| 工程部署 | 良好 | 非常成熟 |
| 学术使用 | 主流 | 次主流 |