丹摩 | 基于PyTorch的CIFAR-10图像分类实现
从创建实例开始的新项目流程
第一步:创建实例
- 登录 DAMODEL 平台。
- 创建一个 GPU 实例:
-
GPU 配置:选择 NVIDIA H800 或其他可用高性能 GPU。

-
系统配置:推荐使用 Ubuntu 20.04,内存 16GB,硬盘 50GB。
-
启动实例后,获取实例的 IP 地址。
-
选择镜像

-
第二步:连接实例

- 登录成功后,你会进入实例的终端界面。


第三步:更新系统和安装基础工具
-
更新系统:
sudo apt update && sudo apt upgrade -y -
安装 Python 和基础工具:
sudo apt install python3 python3-pip git -y -
(可选)安装文本编辑器:
sudo apt install vim nano -y
第四步:创建项目目录并配置环境
-
创建项目目录:
mkdir ~/workspace/cifar10_project cd ~/workspace/cifar10_project -
创建并激活虚拟环境:
python3 -m venv venv source venv/bin/activate
前面出现venu则表示已经激活虚拟环境了 -
安装必要的 Python 包:
pip install torch torchvision matplotlib

第五步:下载数据并初始化项目代码
-
创建 Python 脚本:
vim train_cifar10.py -
在文件中输入以下代码,加载 CIFAR-10 数据集并定义简单模型:
import torch import torchvision import torchvision.transforms as transforms import torch.nn as nn import torch.optim as optim# 数据预处理 transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) ])# 加载 CIFAR-10 数据集 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform) testloader = torch.utils.data.DataLoader(testset, batch_size=64, shuffle=False)# 定义简单卷积神经网络 class SimpleCNN(nn.Module):def __init__(self):super(SimpleCNN, self).__init__()self.conv1 = nn.Conv2d(3, 32, 3, padding=1)self.pool = nn.MaxPool2d(2, 2)self.fc1 = nn.Linear(32 * 16 * 16, 10)def forward(self, x):x = self.pool(torch.relu(self.conv1(x)))x = x.view(-1, 32 * 16 * 16)x = self.fc1(x)return x# 初始化模型、损失函数和优化器 net = SimpleCNN() criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)# 模型训练 for epoch in range(5): # 训练 5 个周期running_loss = 0.0for inputs, labels in trainloader:optimizer.zero_grad()outputs = net(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()print(f"Epoch {epoch+1}, Loss: {running_loss / len(trainloader)}")print("Finished Training") -
保存并退出(按下
Esc,然后输入:wq)。
第六步:运行训练脚本
运行脚本进行模型训练:
python train_cifar10.py
- 脚本会下载 CIFAR-10 数据集并训练模型。
- 训练完成后会输出每个 epoch 的损失值。

第七步:保存和测试模型
-
保存模型:在脚本末尾添加代码以保存训练好的模型:
torch.save(net.state_dict(), "cifar10_model.pth") print("Model saved as cifar10_model.pth") -
重新运行脚本以保存模型:
python train_cifar10.py -
检查是否生成了
cifar10_model.pth文件:ls -
测试模型(可选):加载保存的模型并在测试集上评估准确率:
net.load_state_dict(torch.load("cifar10_model.pth")) net.eval() correct = 0 total = 0 with torch.no_grad():for inputs, labels in testloader:outputs = net(inputs)_, predicted = torch.max(outputs, 1)total += labels.size(0)correct += (predicted == labels).sum().item()print(f"Accuracy on test dataset: {100 * correct / total}%")
第八步:清理和扩展
-
扩展功能:
- 使用更复杂的模型(如 ResNet)。
- 尝试使用 Adam 优化器提高性能。
- 可视化训练过程或模型预测结果。
-
清理资源:
- 如果完成训练并不再需要 GPU 计算,记得停止或删除实例以节省费用。
\
相关文章:
丹摩 | 基于PyTorch的CIFAR-10图像分类实现
从创建实例开始的新项目流程 第一步:创建实例 登录 DAMODEL 平台。创建一个 GPU 实例: GPU 配置:选择 NVIDIA H800 或其他可用高性能 GPU。 系统配置:推荐使用 Ubuntu 20.04,内存 16GB,硬盘 50GB。 启…...
C#变量和函数如何和unity组件绑定
1.Button On_click (1)GameObject通过Add component添加上Script (2)Button选GameObject组件而不是直接选Script,直接选Script出现不了Script中的函数 2.RawImage 上面是错的 3.Text 上面是错的,应该是直接在GameObject里面填上对应的值 总结: …...
AI模型---安装cuda与cuDNN
1.安装cuda 先打开cmd 输入nvidia-smi 查看显卡支持cuda对应的版本: 然后去英伟达官网下载cuda(外网多刷几次) https://developer.nvidia.com/cuda-toolkit-archive 注意对应版本 安装过程中如果显示如下图: 请安装visual Stu…...
【大数据学习 | Spark-Core】Spark提交及运行流程
spark的集群运行结构 我们要选择第一种使用方式 命令组成结构 spark-submit [选项] jar包 参数 standalone集群能够使用的选项。 --master MASTER_URL #集群地址 --class class_name #jar包中的类 --executor-memory MEM #executor的内存 --executor-cores NUM # executor的…...
内网渗透横向移动1
1.信息收集 (1)判断域控 shell net time /domain shell ping OWA2010CN-God.god.org (2)主机探测 浏览探测->网络探测 主机列表显示: (3)域用户收集: shell net user /domain…...
现代密码学
概论 计算机安全的最核心三个关键目标(指标)/为:保密性 Confidentiality、完整性 Integrity、可用性 Availability ,三者称为 CIA三元组 数据保密性:确保隐私或是秘密信息不向非授权者泄漏,也不被非授权者使…...
Pod 动态分配存储空间实现持久化存储
配置 Pod 以使用 PersistentVolume 作为存储 关于持久卷的介绍,可以看官方文档 https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/ 持久卷根据存储位置,可以使用本地存储和云存储,如果有云服务平台,…...
Jackson、Gson、FastJSON三款JSON利器比拼
在Java领域,有多种JSON工具包,比如Jackson、Gson、FastJSON,每家都各有所长,下面我们从性能、特性、生态、易用 性等几个方面来展开下: 一、Jackson 性能 Jackson是一款高性能的JSON处理库。它在序列化和反序列化操作…...
php:nginx如何配置WebSocket代理?
在nginx配置中加入以下配置即可: server {listen 80;server_name test.com;# 配置 WebSocket 代理location /ws {proxy_pass http://127.0.0.1:8083;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade&qu…...
3349、检测相邻递增子数组 Ⅰ
3349、[简单] 检测相邻递增子数组 Ⅰ 1、题目描述 给你一个由 n 个整数组成的数组 nums 和一个整数 k,请你确定是否存在 两个 相邻 且长度为 k 的 严格递增 子数组。具体来说,需要检查是否存在从下标 a 和 b (a < b) 开始的 两个 子数组,…...
C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景
C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景 code review! 参考笔记 C++笔记之unique_ptr转移堆内空间的所有权 文章目录 C++笔记之函数入参传递std::unique_ptr 时使用 std::move的场景一.使用 std::unique_ptr 作为函数参数时的主要场景二.一个完整示例一…...
怎么只提取视频中的声音?从视频中提取纯音频技巧
在数字媒体的广泛应用中,提取视频中的声音已成为一项常见且重要的操作。无论是为了学习、娱乐、创作还是法律用途,提取声音都能为我们带来诸多便利。怎么只提取视频中的声音?本文将详细介绍提取声音的原因、工具、方法以及注意事项。 一、为什…...
数仓工具—Hive语法之窗口函数中的 case when
窗口函数中的 case when 今天我们看一下窗口函数和case when 的各种花活,最近的需求各种窗口,一个需求中十几个窗口,加上各种条件边界,所以写了大量的窗口函数和case when的组合,今天我们来看一下。 我们的数据如下 %spark.pyspark df2 = spark.createDataFrame([(&quo…...
基于微信小程序的酒店客房管理系统+LW示例参考
1.项目介绍 系统角色:管理员、员工、普通用户功能模块:员工管理、用户管理、客房管理、预订管理、商品管理、评价管理、续订管理、订单管理等技术选型:SSM,vue,uniapp等测试环境:idea2024,jdk1…...
Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的?
大家好,我是锋哥。今天分享关于【Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的?】面试题。希望对大家有帮助; Elasticsearch客户端在和集群连接时,如何选择特定的节点执行请求的? 100…...
【AI最前线】DP双像素sensor相关的AI算法全集:深度估计、图像去模糊去雨去雾恢复、图像重建、自动对焦
Dual Pixel 简介 双像素是成像系统的感光元器件中单帧同时生成的图像:通过双像素可以实现:深度估计、图像去模糊去雨去雾恢复、图像重建 成像原理来源如上,也有遮罩等方式的pd生成,如图双像素视图可以看到光圈的不同一半&#x…...
CTF之密码学(Polybius密码)
棋盘密码,也称为Polybius密码或方格密码,是一种基于替换的加密方法。以下是对棋盘密码的详细解析: 一、加密原理 棋盘密码使用一个5x5的方格棋盘,其中填充了26个英文字母(通常i和j被视为同一个字母并放在同一个格子中…...
【C++篇】从售票窗口到算法核心:C++队列模拟全解析
文章目录 须知 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助吗࿱…...
clipboard
clipboard 现代复制到剪贴板。无闪光。只有 3kb 的 gzip 压缩。 安装 npm install clipboard --save第三方cdn提供商 <script src"https://cdn.jsdelivr.net/npm/clipboard2.0.11/dist/clipboard.min.js"></script>使用 data-clipboard-target"…...
【Mac】VMware Fusion Pro 安装 CentOS 7
1、下载镜像 CentOS 官网阿里云镜像网易镜像搜狐镜像 Mac M1芯片无法直接使用上述地址下载的最新镜像(7.9、9),会一直卡在安装界面(在 install 界面按 enter 回车无效),想要使用需要经过一系列操作&#…...
DeepSeek v3升级后成本激增41%?紧急发布:兼容性迁移成本对冲清单(含6个可立即执行的config开关)
更多请点击: https://kaifayun.com 第一章:DeepSeek成本控制策略 DeepSeek系列大模型在推理与训练阶段的资源消耗显著,因此精细化的成本控制策略是保障其规模化落地的关键。核心思路在于“按需调度、动态降级、硬件感知”,而非简…...
Taotoken 的用量看板如何帮助我清晰掌握每月大模型支出
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken 的用量看板如何帮助我清晰掌握每月大模型支出 对于个人开发者或项目管理者而言,大模型 API 的调用成本常常是…...
5分钟搞定macOS歌词同步:LyricsX完整配置终极指南
5分钟搞定macOS歌词同步:LyricsX完整配置终极指南 【免费下载链接】LyricsX 🎶 Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX 想在Mac上享受完美的歌词同步体验吗?LyricsX正是你需要的终极歌…...
Backtrader止损策略终极指南:3种方法保护你的交易资金
Backtrader止损策略终极指南:3种方法保护你的交易资金 【免费下载链接】backtrader Python Backtesting library for trading strategies 项目地址: https://gitcode.com/gh_mirrors/ba/backtrader 在量化交易中,止损是保护资金安全的关键防线。B…...
在Python项目中管理多个Taotoken API Key与实现访问控制
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Python项目中管理多个Taotoken API Key与实现访问控制 在开发基于大模型的应用时,将生产环境与测试环境隔离…...
终极指南:如何将STL文件快速转换为STEP格式(免费工具完整教程)
终极指南:如何将STL文件快速转换为STEP格式(免费工具完整教程) 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在现代3D设计与制造流程中,STL到S…...
FanControl终极指南:5分钟实现Windows风扇智能控制与精准散热管理
FanControl终极指南:5分钟实现Windows风扇智能控制与精准散热管理 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…...
终极指南:如何用Awoo Installer一站式解决Switch游戏安装兼容性问题
终极指南:如何用Awoo Installer一站式解决Switch游戏安装兼容性问题 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安…...
Chatbox终极主题定制指南:打造专属AI交互界面
Chatbox终极主题定制指南:打造专属AI交互界面 【免费下载链接】chatbox Powerful AI Client 项目地址: https://gitcode.com/GitHub_Trending/ch/chatbox 你是否曾经在深夜编码时,被刺眼的浅色界面晃得眼睛发疼?又或者,你是…...
Claude Code 总被封号或 Token 不足时如何通过 Taotoken 获得稳定替代方案
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code 总被封号或 Token 不足时如何通过 Taotoken 获得稳定替代方案 对于依赖 Claude Code 这类编程助手进行日常开发的工程…...
