pytorch2.5实例教程

打印 上一主题 下一主题

主题 1022|帖子 1022|积分 3066

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
以下是再次为你提供的一个详细的PyTorch使用教程:
一、安装PyTorch


  • 情况准备

    • 确保体系已安装符合版本的Python(推荐3.10及以上)。

  • 安装方式

    • CPU版本

      • 对于Linux和macOS:

        • 使用下令 pip install torch torchvision torchaudio。

      • 对于Windows:

        • 先处置惩罚好依赖项,然后使用类似的pip下令安装。


    • GPU版本(依赖于CUDA)

      • 依据CUDA版本在官网查找对应下令。例如,若CUDA为12.4:

        • 实行 conda install pytorch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 pytorch-cuda=12.4 -c pytorch -c nvidia。



二、PyTorch底子概念


  • 张量(Tensors)

    • 核心数据结构,类似NumPy数组且可在GPU加速计算。
    • 创建方式

      • 从列表创建:

        • 示例:

          • import torch
          • my_list = [1, 2, 3]
          • tensor = torch.tensor(my_list)


      • 创建随机张量:

        • 例如:random_tensor = torch.randn(3, 3)(创建3x3随机正态分布张量)。



  • 计算图与自动微分

    • 计算基于构建计算图,利用张量时自动构建。
    • 示例:

      • 计算 y = x^2 + 3x 的梯度。

        • x = torch.tensor([2.0], requires_grad = True)
        • y = x ** 2+3 * x
        • y.backward()
        • print(x.grad)



三、创建神经网络模型


  • 界说网络结构

    • 使用 nn.Module 类。
    • 示例(全连接神经网络):

      • import torch.nn as nn
        1. class MyNet(nn.Module):
        2.     def __init__(self):
        3.         super(MyNet, self).__init__()
        4.         self.fc1 = nn.Linear(10, 5)
        5.         self.fc2 = nn.Linear(5, 1)
        6.     def forward(self, x):
        7.         x = torch.relu(self.fc1(x))
        8.         x = self.fc2(x)
        9.         return x
        复制代码


  • 模型初始化与参数检察

    • 初始化:model = MyNet()
    • 参数检察:

        1. for name, param in model.named_parameters():
        2.     print(name, param.size())
        复制代码


四、数据处置惩罚


  • 数据加载

    • 使用 DataLoader 类,需先创建数据集类(继续 torch.utils.data.Dataset)。
    • 示例:

        1. from torch.utils.data import Dataset, DataLoader
        2. class MyDataset(Dataset):
        3.     def __init__(self):
        4.         self.data = torch.randn(100, 10)
        5.         self.labels = torch.randint(0, 2, (100,))
        6.     def __getitem__(self, index):
        7.         return self.data[index], self.labels[index]
        8.     def __len__(self):
        9.         return len(self.data)
        10. dataset = MyDataset()
        11. dataloader = DataLoader(dataset, batch_size = 10, shuffle = True)
        复制代码


  • 数据预处置惩罚

    • 以图像数据为例,使用 torchvision.transforms。
    • 示例:

        1. import torchvision.transforms as transforms
        2. transform = transforms.Compose([
        3.     transforms.ToTensor(),
        4.     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
        5. ])
        复制代码


五、训练模型


  • 界说损失函数和优化器

    • 损失函数

      • 例如回归题目用均方误差(MSE):criterion = nn.MSELoss()

    • 优化器

      • 如随机梯度下降(SGD):optimizer = torch.optim.SGD(model.parameters(), lr = 0.01)


  • 训练循环

    • 多轮训练:

        1. num_epochs = 10
        2. for epoch in range(num_epochs):
        3.     for batch_data, batch_labels in dataloader:
        4.         optimizer.zero_grad()
        5.         outputs = model(batch_data)
        6.         loss = criterion(outputs, batch_labels)
        7.         loss.backward()
        8.         optimizer.step()
        9.     print(f'Epoch {epoch + 1}, Loss: {loss.item()}')
        复制代码


六、模型评估与猜测


  • 模型评估

    • 以分类题目计算准确率为例:

        1. correct = 0
        2. total = 0
        3. with torch.no_grad():
        4.     for batch_data, batch_labels in dataloader:
        5.         outputs = model(batch_data)
        6.         _, predicted = torch.max(outputs.data, 1)
        7.         total += batch_labels.size(0)
        8.         correct += (predicted == batch_labels).sum().item()
        9. accuracy = correct / total
        10. print(f'Accuracy: {accuracy}')
        复制代码


  • 猜测新数据

    • 示例:

        1. new_data = torch.randn(1, 10)
        2. with torch.no_grad():
        3.     prediction = model(new_data)
        4. print(f'Prediction: {prediction}')
        复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

知者何南

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表