丹摩 | 使用 DAMODEL 平台训练手写数字识别模型的详细教程

在这里插入图片描述


博客目标

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


步骤一:注册并登录 DAMODEL

重点:注册与登录
  1. 注册账号

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

    • 登录后,进入控制台,选择“创建云实例”。
      在这里插入图片描述

步骤二:创建 GPU 云实例

重点:计算资源配置
  1. 选择计算资源

    • 点击“创建实例”,推荐使用 NVIDIA GeForce RTX 4090H800
      在这里插入图片描述
    • 配置实例:内存 16GB、系统盘 50GB、操作系统 Ubuntu 20.04
      在这里插入图片描述
  2. 启动实例

    • 启动实例后,通过远程终端或 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)

  1. 安装深度学习框架
    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 项目。


学习资源

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