【第三章:神经网络原理详解与Pytorch入门】02.深度学习框架PyTorch入门-(2)Pytorch主要组成模块

第三章: 神经网络原理详解与Pytorch入门

第二部分:深度学习框架PyTorch入门

第二节:Pytorch主要组成模块

内容:数据读取、模型构建、loss函数、Optimizer

PyTorch 提供了构建、训练和评估神经网络模型所需的完整工具链。主要包括四大模块:

  • 数据读取(torch.utils.data

  • 模型构建(torch.nn

  • 损失函数(torch.nn

  • 优化器(torch.optim


一、数据读取模块:torch.utils.data

PyTorch 通过 Dataset 和 DataLoader 提供高效灵活的数据加载机制。

1. 自定义 Dataset 类
from torch.utils.data import Dataset

class MyDataset(Dataset):
    def __init__(self, data, labels):
        self.data = data
        self.labels = labels
    def __len__(self):
        return len(self.data)
    def __getitem__(self, idx):
        return self.data[idx], self.labels[idx]
2. 使用 DataLoader 批量加载
from torch.utils.data import DataLoader

dataset = MyDataset(data, labels)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)

二、模型构建模块:torch.nn

提供丰富的层定义与模型构建方式,主要通过继承 nn.Module 实现。

示例:构建简单神经网络
import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(784, 128)
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = self.relu(self.fc1(x))
        return self.fc2(x)

三、损失函数模块:torch.nn

损失函数用于衡量模型预测值与真实值之间的差距。PyTorch 常用的损失函数包括:

损失函数名称用途示例代码
MSELoss回归nn.MSELoss()
CrossEntropy多分类nn.CrossEntropyLoss()
BCEWithLogitsLoss二分类nn.BCEWithLogitsLoss()
criterion = nn.CrossEntropyLoss()
loss = criterion(output, target)

四、优化器模块:torch.optim

用于更新模型参数以最小化损失函数。

常用优化器:
优化器特点
SGD最基本的随机梯度下降
Adam自动调整学习率
RMSprop适用于循环神经网络
示例:
import torch.optim as optim

optimizer = optim.Adam(model.parameters(), lr=0.001)

# 训练过程中
optimizer.zero_grad()
loss.backward()
optimizer.step()

五、训练流程简要汇总

for epoch in range(num_epochs):
    for inputs, targets in dataloader:
        outputs = model(inputs)
        loss = criterion(outputs, targets)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

小结

模块作用说明
Dataset/DataLoader管理和加载训练数据
nn.Module构建模型结构
nn.Loss衡量模型预测与真实标签之间的误差
optim.Optimizer更新模型参数以减小误差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值