博客目标

这篇博客将指导开发者如何使用 DAMODEL 平台训练一个基于 PyTorch 的手写数字识别模型(MNIST 数据集),同时标记出操作中的重点环节,帮助快速掌握流程。


步骤一:注册并登录 DAMODEL

重点:注册与登录

  1. 注册账号

    • 访问 DAMODEL 官方网站,注册并完成实名认证。
    • 领取新用户奖励,如赠送 GPU 使用时长。
  2. 登录控制台

    • 登录后,进入控制台,选择“创建云实例”。

      在这里插入图片描述


步骤二:创建 GPU 云实例

重点:计算资源配置

  1. 选择计算资源
    • 点击“创建实例”,推荐使用 NVIDIA GeForce RTX 4090H800

      在这里插入图片描述

    • 配置实例:内存 16GB、系统盘 50GB、操作系统 Ubuntu 20.04

      在这里插入图片描述

  1. 启动实例
    • 启动实例后,通过远程终端或 SSH 登录。

      在这里插入图片描述


      在这里插入图片描述


      这里的密钥对自己随便创建一个就可以了

      在这里插入图片描述


      出现创建中就可以等一会

      在这里插入图片描述


步骤三:配置开发环境

打开终端

在这里插入图片描述

重点:环境搭建

  1. 安装基础工具

    sudo apt update && sudo apt upgrade -y
    sudo apt install python3 python3-pip git -y
    
  2. 创建虚拟环境

    pip3 install virtualenv
    virtualenv mnist_env
    source mnist_env/bin/activate
    

    在这里插入图片描述


    创建完虚拟环境以后前面会有(venu)

  3. 安装深度学习框架

    pip install torch torchvision matplotlib
    

步骤四:获取代码并准备数据

重点:数据与模型初始化

  1. 下载 MNIST 数据集

    from torchvision import datasets, transforms
    transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
    train_data = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
    test_data = datasets.MNIST(root='./data', train=False, download=True, transform=transform)
    
  2. 编写模型代码

    import torch.nn as nn
    import torch.nn.functional as F
    
    class SimpleNN(nn.Module):
        def __init__(self):
            super(SimpleNN, self).__init__()
            self.fc1 = nn.Linear(28*28, 128)
            self.fc2 = nn.Linear(128, 64)
            self.fc3 = nn.Linear(64, 10)
    
        def forward(self, x):
            x = x.view(-1, 28*28)
            x = F.relu(self.fc1(x))
            x = F.relu(self.fc2(x))
            x = self.fc3(x)
            return x
    

步骤五:训练模型

重点:模型训练流程

  1. 定义训练脚本

    import torch.optim as optim
    from torch.utils.data import DataLoader
    
    model = SimpleNN()
    optimizer = optim.SGD(model.parameters(), lr=0.01)
    criterion = nn.CrossEntropyLoss()
    
    train_loader = DataLoader(train_data, batch_size=64, shuffle=True)
    
    for epoch in range(5):  # 训练 5 个周期
        running_loss = 0
        for images, labels in train_loader:
            optimizer.zero_grad()
            output = model(images)
            loss = criterion(output, labels)
            loss.backward()
            optimizer.step()
            running_loss += loss.item()
        print(f"Epoch {epoch+1}, Loss: {running_loss/len(train_loader)}")
    
  2. 运行训练脚本
    将代码保存为 train_mnist.py 并运行:

    python train_mnist.py
    

步骤六:验证模型

重点:测试与验证

  1. 测试模型性能

    test_loader = DataLoader(test_data, batch_size=64, shuffle=False)
    
    correct = 0
    total = 0
    with torch.no_grad():
        for images, labels in test_loader:
            outputs = model(images)
            _, predicted = torch.max(outputs.data, 1)
            total += labels.size(0)
            correct += (predicted == labels).sum().item()
    
    print(f"Accuracy: {100 * correct / total}%")
    

步骤七:保存和下载模型

重点:模型保存与导出

  1. 保存模型
    torch.save(model.state_dict(), "mnist_model.pth")
    
  2. 下载模型
    • 使用 SFTP 工具或 DAMODEL 的文件管理功能将模型下载到本地。

步骤八:清理资源

重点:节约资源

  • 在 DAMODEL 控制台停止并删除实例,避免额外费用。

总结与展望

通过 DAMODEL 平台,你可以快速完成 MNIST 模型的训练与部署。未来,可探索更复杂的神经网络模型或多实例分布式训练。随着 DAMODEL 不断优化,开发者将能够更高效地完成 AI 项目。


学习资源

通过这些资源,扩展你的深度学习技能!

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐