当前位置: 首页 > news >正文

10 卷积神经网络

#----导包
import torch
from torch import nn
from torchvision import transforms
from torchvision import datasets
from torch.utils.data import DataLoader
import torch.nn.functional as F
import torch.optim as optim#----准备数据集
batch_size = 64
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,),(0.3081,))])#----下载和加载train和test
trainset = datasets.MNIST(root='./data', train=True, transform=transform, download=False)
train_loader = DataLoader(trainset, batch_size=batch_size, shuffle=True)testset = datasets.MNIST(root='./data', train=False, transform=transform, download=False)
test_loader = DataLoader(trainset, batch_size=batch_size, shuffle=False)#-----搭建卷积神经网络
class Net(torch.nn.Module):def __init__(self):super().__init__()self.conv1 = nn.Conv2d(1, 10, 5)self.conv2 = nn.Conv2d(10, 20, 5)self.pool = nn.MaxPool2d(2, 2)self.fc1 = nn.Linear(320, 10)def forward(self, x):x = F.relu(self.pool(self.conv1(x)))x = F.relu(self.pool(self.conv2(x)))x = x.view(x.size(0), -1) #可以改成x = x.view(-1, 320)x = self.fc1(x)return xmodel = Net()
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") #将模型迁移到GPU
model.to(device)#将模型迁移到GPUcriterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)def train(epoch):running_loss = 0.0for batch_idx, (inputs, targets) in enumerate(train_loader):inputs, targets = inputs.to(device), targets.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, targets)loss.backward()optimizer.step()running_loss += loss.item()if batch_idx % 300 == 299:print('[%d, %5d] loss: %.3f' %(epoch + 1, batch_idx + 1, running_loss / 300))running_loss = 0.0def test(epoch):correct = 0total = 0with torch.no_grad():for batch_idx, (inputs, targets) in enumerate(test_loader):inputs, targets = inputs.to(device), targets.to(device)outputs = model(inputs)_, predicted = torch.max(outputs.data, 1)total += targets.size(0)correct += predicted.eq(targets).sum().item()accuracy = 100 * correct / totalprint('Accuracy of the network on the 10000 test images: %f ' % accuracy)

训练和测试结果: 

http://www.dtcms.com/a/306947.html

相关文章:

  • LLMs之Agent:GLM-4.5的简介、安装和使用方法、案例应用之详细攻略
  • 51单片机入门:数码管原理介绍及C代码实现
  • 【硬件】元器件选型
  • 【ESP32设备通信】-LAN8720与ESP32集成
  • 订阅区块,部署合约,加载合约
  • Akamai CloudTest before 60 2025.06.02 XXE注入导致文件包含漏洞(CVE-2025-49493)
  • MOEA/DD(多目标进化算法基于分解)简介
  • AAAI‘26 | 聚焦人工智能前沿:西工大李学龙教授荣任赞助主席,论文取号逼近三万,精彩不容错过!
  • Javaweb———HTTP响应头属性讲解
  • Redis实现数据传输简介
  • 【AI落地应用实战】利用 Amazon Bedrock Claude3 打造个性化 AI Character 应用
  • C++反射
  • JVM 性能调优实战:让系统性能 “飞” 起来的核心策略
  • B站 XMCVE Pwn入门课程学习笔记(6)
  • SpringBoot 实现 RAS+AES 自动接口解密
  • 2023年数学建模国赛C题第一问解答
  • 流匹配在翼型生成中的应用:完整实现指南
  • 实习小记(个人中心的编辑模块)
  • C++提高编程学习--模板
  • 【python 获取邮箱验证码】模拟登录并获取163邮箱验证码,仅供学习!仅供测试!仅供交流!
  • jakarta.websocket.DeploymentException:Endpoint instance creation failed
  • 2021 年 NOI 最后一题题解
  • pandas 分组相同赋值1然后累加
  • PAT 甲级题目讲解:1011《World Cup Betting》
  • 【MySQL 数据库】MySQL索引特性(一)磁盘存储定位扇区InnoDB页
  • Linux c网络专栏第四章io_uring
  • 面向对象中级编程
  • DFT不同维度中gate、cell、instance介绍
  • RAG:检索增强生成的范式演进、技术突破与前沿挑战
  • pytorch入门2:利用pytorch进行概率预测