🧠 PyTorch 入门概览

📘 一、PyTorch 是什么?

PyTorch 是一个由 Facebook(Meta)AI 研究院 开发的 深度学习框架,用于构建、训练和部署神经网络。

它提供了:

  • 灵活的 张量计算(Tensor) 功能;

  • 自动计算梯度的 自动微分(Autograd) 系统;

  • 高效的 GPU 加速;

  • 以及丰富的 神经网络模块(torch.nn)。

一句话总结👇

✅ PyTorch = Python + GPU加速 + 自动求导 + 神经网络库


⚙️ 二、PyTorch 的核心组成

模块作用示例
torch.Tensor类似 NumPy 的张量对象,支持 GPU 运算x = torch.randn(2,3)
torch.autograd自动求导系统,实现反向传播x.requires_grad_(True)
torch.nn神经网络层与损失函数模块nn.Linear(10,5)
torch.optim优化器模块(SGD、Adam等)optimizer = torch.optim.Adam(model.parameters())
torch.utils.data数据加载与批处理DataLoader(dataset, batch_size=32)

🚀 三、PyTorch 能做什么?

PyTorch 能做的事情非常广,从入门的机器学习模型,到前沿的人工智能研究都有覆盖。

应用方向能做的事典型例子
🔹 深度学习基础构建、训练神经网络(CNN、RNN、MLP)手写数字识别(MNIST)
🔹 计算机视觉(CV)图像分类、目标检测、语义分割ResNet、YOLO、Mask R-CNN
🔹 自然语言处理(NLP)文本分类、机器翻译、文本生成Transformer、BERT、GPT
🔹 生成模型(AI绘画)图像生成、风格迁移、扩散模型Stable Diffusion
🔹 强化学习(RL)智能体训练与环境交互DQN、PPO、AlphaZero
🔹 科学计算/仿真物理建模、生物信息学、图学习Graph Neural Network (GNN)
🔹 部署与推理模型导出、移动端/服务器部署TorchScript, ONNX

🧩 四、PyTorch 的优势

特点说明
🔥 动态图机制(Dynamic Graph)即时执行、调试方便(像写普通Python一样)
⚡ GPU/TPU 加速自动切换设备,轻松使用 CUDA
🧮 自动求导系统不必手写反向传播,autograd 自动计算梯度
🧱 模块化神经网络结构使用 torch.nn.Module 自定义模型层
🌍 强大的社区与生态HuggingFace、TorchVision、TorchText、Lightning等支持

🧠 五、典型代码结构(示例)

import torch
import torch.nn as nn
import torch.optim as optim

# 1. 定义模型
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc = nn.Linear(2, 1)
    def forward(self, x):
        return torch.sigmoid(self.fc(x))

model = Net()

# 2. 定义损失与优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)

# 3. 前向传播 + 反向传播
x = torch.tensor([[1.0, 2.0]])
y_true = torch.tensor([[1.0]])
y_pred = model(x)
loss = criterion(y_pred, y_true)
loss.backward()   # 自动计算梯度
optimizer.step()  # 更新参数

这段代码就是一个 最简神经网络的完整训练循环,展示了 PyTorch 的核心特性:
➡️ 张量计算 → 前向传播 → 自动求导 → 参数更新。


🌐 六、PyTorch 的应用场景

场景说明案例
🎨 图像识别自动识别图像中的物体ResNet、YOLOv8
💬 文本理解聊天机器人、文本生成GPT、ChatGPT、BERT
🎵 声音识别语音转文字、音频分析Whisper、Wav2Vec
🤖 智能控制游戏AI、机器人路径规划强化学习训练环境
🧬 科学研究分子建模、基因分析AlphaFold、GNN模型
🧠 教育/实验教学演示、论文复现深度学习课程实验

当然可以,小飞 👍
我来帮你把这部分内容重新排版成清晰、专业、可直接放入教学或笔记中的 Markdown 格式版本,结构更紧凑、代码区分更明显👇


🧠 Lesson 7:PyTorch 基础语法与张量创建

📘 一、什么是张量(Tensor)

张量(Tensor) 是 PyTorch 中的基本数据结构,可以理解为 多维数组。

维度名称示例
0维标量(Scalar)3.14
1维向量(Vector)[1, 2, 3]
2维矩阵(Matrix)[[1, 2], [3, 4]]
3维及以上高阶张量(Tensor)[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]

⚙️ 二、张量的创建方式

1️⃣ 使用 torch.tensor() 根据数据创建张量
import torch

# 标量(0维)
scalar = torch.tensor(3.14159)
print(f"scalar 标量张量:{scalar}, 维度:{scalar.dim()}")

# 向量(1维)
vector = torch.tensor([1, 2, 3, 4])
print(f"vector 向量张量:{vector}, 维度:{vector.dim()}")

# 矩阵(2维)
matrix = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(f"matrix 矩阵张量:\n{matrix}\n维度:{matrix.dim()}")

# 三维张量(3维)
tensor_3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(f"tensor_3d 三维张量:\n{tensor_3d}\n维度:{tensor_3d.dim()}")

---------------1️⃣ 使用 torch.tensor() 根据数据创建张量---------------
scalar标量张量:3.141590118408203,维度:0
vector向量张量:tensor([1, 2, 3, 4]),维度:1
matrix矩阵张量:tensor([[1, 2, 3],
        [4, 5, 6]]),维度:2
tensor_3d 三维张量:tensor([[[1, 2],
         [3, 4]],

        [[5, 6],
         [7, 8]]]),维度:3


2️⃣ 使用 torch.Tensor() 根据形状创建张量

⚠️ 默认类型为 torch.float32,内容是未初始化的随机值。

# 二维矩阵
matrix_2 = torch.Tensor(2, 3)
print(f"matrix_2 矩阵张量:\n{matrix_2}\n维度:{matrix_2.dim()}")

# 三维张量
tensor_3d1 = torch.Tensor(2, 2, 2)
print(f"tensor_3d1 三维张量:\n{tensor_3d1}\n维度:{tensor_3d1.dim()}")

-------------- 使用 torch.Tensor() 根据形状创建张量--------------------
matrix_2矩阵张量:
tensor([[1.5795e-18, 6.2778e-43, 1.5795e-18],
        [6.2778e-43, 1.6578e-18, 6.2778e-43]])
维度:2
tensor_3d1 3维张量:
tensor([[[1.5795e-18, 6.2778e-43],
         [1.5795e-18, 6.2778e-43]],

        [[1.6578e-18, 6.2778e-43],
         [2.1019e-44, 0.0000e+00]]])
维度:3

3️⃣ 使用具体类型函数创建张量
print("----------- 根据不同类型创建张量 -----------")

# 标量(Double 类型)
scalar_3 = torch.DoubleTensor([3.14])
print(f"scalar_3 标量张量:{scalar_3}, 维度:{scalar_3.dim()}")

# 矩阵(Int 类型)
matrix_3 = torch.IntTensor(2, 3)
print(f"matrix_3 矩阵张量:\n{matrix_3}\n维度:{matrix_3.dim()}")

# 三维张量(Int 类型)
tensor_3d3 = torch.IntTensor(2, 2, 2)
print(f"tensor_3d3 三维张量:\n{tensor_3d3}\n维度:{tensor_3d3.dim()}")

-----------3️⃣ 使用具体类型函数创建张量---------------
scalar_3 标量张量:tensor([3.1400], dtype=torch.float64),维度:1
matrix_3 矩阵张量:tensor([[568923984,       448, 568923968],
        [      448, 569681520,       448]], dtype=torch.int32),维度:2
tensor_3d3 三维张量:tensor([[[568923984,       448],
         [568923968,       448]],

        [[569681520,       448],
         [       15,         0]]], dtype=torch.int32),维度:3

 
指定类型创建张量 (不同数据类型)
数据类型构造器类型说明示例
torch.FloatTensor32位浮点型(默认浮点类型)浮点数据
torch.DoubleTensor64位浮点型高精度浮点
torch.HalfTensor16位浮点型半精度浮点
torch.IntTensor32位整型常用整型
torch.LongTensor64位整型(默认整型)大整数
torch.ShortTensor16位整型小范围整数
torch.ByteTensor无符号 8位整型0–255
torch.BoolTensor布尔类型True / False
后续语法请看第二节~

✅ 八、总结一句话

PyTorch 是一个面向研究与生产的深度学习框架,能让你像写普通 Python 一样轻松构建和训练神经网络。

喜欢的同学点个关注吧,及时推送一起学习呀~


更多推荐