人工智能学习笔记 - 编程与工具 - 深度学习框架

39 阅读2分钟

人工智能学习笔记 - 编程与工具 - 深度学习框架

深度学习框架用于构建、训练和部署神经网络模型,是现代人工智能(尤其是计算机视觉、自然语言处理、语音识别)的核心基础设施。


深度学习框架概述

深度学习框架主要解决以下问题:

  • 张量(Tensor)计算与自动求导
  • 神经网络结构的定义与组合
  • 模型训练、优化与评估
  • GPU / 多卡 / 分布式加速
  • 模型保存、加载与部署

目前主流框架为 PyTorchTensorFlow / 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(对比)

对比维度PyTorchTensorFlow / Keras
计算图动态图动态图(TF 2.x)
学习曲线较平缓(偏代码)非常友好
调试体验优秀良好
工程部署良好非常成熟
学术使用主流次主流