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

Python训练第四十三天

DAY 43 复习日

作业:

kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化

进阶:并拆分成多个文件

import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms, models
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt
import numpy as np
import torch.nn.functional as F# 设置随机种子确保结果可复现
torch.manual_seed(42)
np.random.seed(42)# 设置中文字体支持
plt.rcParams["font.family"] = ["SimHei"]
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题# 检查GPU是否可用
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"使用设备: {device}")# 1. 数据预处理
# 训练集:使用多种数据增强方法提高模型泛化能力
train_transform = transforms.Compose([# 新增:调整图像大小为统一尺寸transforms.Resize((32, 32)),  # 确保所有图像都是32x32像素transforms.RandomCrop(32, padding=4),transforms.RandomHorizontalFlip(),transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1),transforms.RandomRotation(15),transforms.ToTensor(),transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))])# 测试集:仅进行必要的标准化,保持数据原始特性
test_transform = transforms.Compose([# 新增:调整图像大小为统一尺寸transforms.Resize((32, 32)),  # 确保所有图像都是32x32像素transforms.ToTensor(),transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))
])# 定义数据集根目录
root = r'C:\Users\vijay\Desktop\1'train_dataset = datasets.ImageFolder(root=root + '/train',  # 指向 train 子文件夹transform=train_transform
)
test_dataset = datasets.ImageFolder(root=root + '/test',  # 指向 test 子文件夹transform=test_transform
)# 打印类别信息,确认数据加载正确
print(f"训练集类别: {train_dataset.classes}")
print(f"测试集类别: {test_dataset.classes}")# 3. 创建数据加载器
batch_size = 64
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False)

@浙大疏锦行

http://www.xdnf.cn/news/10659.html

相关文章:

  • 从计量到通信,DJSF1352-D为快充桩系统提供了怎样的解决方案?
  • Java基础(二):八种基本数据类型详解
  • 内网横向之RDP缓存利用
  • 三大中文wordpress原创主题汉主题
  • 动态规划--每日一练(LIS+层级法)
  • BAT脚本编写详细教程
  • 【LeetCode 热题100】动态规划实战:打家劫舍、完全平方数与零钱兑换(LeetCode 198 / 279 / 322)(Go语言版)
  • 云服务器无法远程连接怎么办?
  • Playwright 测试框架 - Node.js
  • 代码随想录|动态规划|47判断子序列
  • 从Docker拉取镜像一直失败超时解决办法
  • 现代汽车电气/电子(E/E)架构集中化评估的系统方法
  • win主机如何结束正在执行的任务进程并重启
  • CVE-2021-28169源码分析与漏洞复现(Jetty信息泄露)
  • 基于springboot的民间文化艺术品销售系统
  • 调整数据集的方法
  • 达芬奇(DaVinci Resolve)下载安装教程
  • 关闭函数闭包的理解
  • 一元函数积分
  • C++string1号
  • ps色相饱和度调整
  • ESP32与STM32
  • 回测效率提升500%!khQuant打板策略回测性能深度剖析——基于miniQMT的回测系统深度优化【AI量化第29篇】
  • 【Linux】权限chmod命令+Linux终端常用快捷键
  • 审计-函证
  • 自适应流量调度用于遥操作:面向时间敏感网络的通信与控制协同优化框架
  • 状态机实现文件单词统计
  • 基于STM32控制直流电机加减速正反转设计
  • FDR的定位原理
  • Transformer核心技术深度解析:多头注意力机制与架构精粹