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

Python day43

@浙大疏锦行  Python day43

import torch
import numpy as np
import pandas as pd
import torchvision 
import torchvision.transforms as transforms
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F 
from torch.utils.data import DataLoader, Datasettransform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])test_dataset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)
train_dataset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)train_dataloader = DataLoader(train_dataset,batch_size=32,shuffle=True,
)test_dataloader = DataLoader(test_dataset,batch_size=32,shuffle=False,
)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Using device: {device}")class Net(nn.Module):def __init__(self):super(Net,self).__init__()# Convolutional Layer 1self.conv1 = nn.Conv2d(in_channels =3,out_channels=32,padding=2,kernel_size=3,stride=1)# Batch Normlizationself.bn1 = nn.BatchNorm2d(num_features=32)# ReLU Activationself.relu1 = nn.ReLU()# CNN Layer 2self.conv2 = nn.Conv2d(in_channels=32,out_channels=64,padding=2,kernel_size=3,stride=1)self.bn2 = nn.BatchNorm2d(num_features=64)self.relu2 = nn.ReLU()# MLPself.fc1 = nn.Linear(in_features=64*8*8, out_features=128)# Dropoutself.dropout = nn.Dropout(p=0.5)# Output Layerself.fc2 = nn.Linear(in_features=128, out_features=10)def forward(self,x):# CNN layer 1x = self.conv1(x)x = self.bn1(x)x = self.relu1(x)# CNN layer 2x = self.conv2(x)x = self.bn2(x)x = self.relu2(x)# MLPx = x.view(-1, 64*8*8)x = self.fc1(x)         # MLPx = self.dropout(x)     # Dropout 随机丢弃神经元x = self.fc2(x)         # Output Layerreturn x            # 这里的x是未经过softmax的结果model = Net()
model.to(device)
print(model)criterion = nn.CrossEntropyLoss()                     # 交叉熵损失函数
optimizer = optim.Adam(model.parameters(), lr=0.001)  # Adam优化器# 引入学习率调度器,在训练过程中动态调整学习率--训练初期使用较大的 LR 快速降低损失,训练后期使用较小的 LR 更精细地逼近全局最优解。
# 在每个 epoch 结束后,需要手动调用调度器来更新学习率,可以在训练过程中调用 scheduler.step()
scheduler = optim.lr_scheduler.ReduceLROnPlateau(optimizer,        # 指定要控制的优化器(这里是Adam)mode='min',       # 监测的指标是"最小化"(如损失函数)patience=3,       # 如果连续3个epoch指标没有改善,才降低LRfactor=0.5        # 降低LR的比例(新LR = 旧LR × 0.5)
)def train():pass

http://www.lryc.cn/news/620123.html

相关文章:

  • 【易错题】C语言
  • NTUSER.DAT是什么文件
  • Vue内置组件全解析:从入门到面试通关
  • docker安装centos
  • 接口添加了 @Transactional 注解并开启事务,而其中一个小方法启动了新线程并手动提交数据,会有什么影响?
  • 服务器安全笔记
  • 学习:JS进阶[10]内置构造函数
  • [ 数据结构 ] 泛型 (上)
  • Excel多级数据结构导入导出工具
  • Laravel 使用ssh链接远程数据库
  • Linux Framebuffer(帧缓冲)与基本 UI 绘制技术
  • 【R语言】RStudio 中的 Source on Save、Run、Source 辨析
  • 认知系统的架构: 认知残余三角形、认知主体意识 和认知演进金字塔
  • 【docker①】在VS Code中使用Docker容器
  • 从零用 NumPy 实现单层 Transformer 解码器(Decoder-Only)
  • 未来AI:微算法科技(NASDAQ:MLGO)开发基于忆阻器网络储层计算MemristorPattern虚拟平台
  • 通过限制网络访问来降低服务器被攻击风险的方法
  • 云原生技术k8s部署prometheus
  • 面向Python/C#开发者入门Java与Bukkit API
  • C# 反射和特性(元数据和反射)
  • Mysql——如何做到Redolog崩溃后恢复的
  • NLP学习之Transformer(1)
  • 算法题——哈希表
  • 洛谷 P2607 [ZJOI2008] 骑士-提高+/省选-
  • 从 Web 开发到数据科学:全栈基础技术总结
  • nm命令和nm -D命令参数
  • 互联网大厂Java求职面试实录:Spring Boot到微服务与AI的技术问答
  • 《量子雷达》第2章 从量子信息到量子雷达 预习2025.8.13
  • Canal解析MySQL Binlog原理与应用
  • RC4算法实现