处理训练和验证数据集

📚博客主页:knighthood2001
公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下)
🎃知识星球:【认知up吧|成长|副业】介绍
❤️如遇文章付费,可先看看我公众号中是否发布免费文章❤️
🙏笔者水平有限,欢迎各位大佬指点,相互学习进步!

对于自己的数据集,这里以猫狗分类数据集为例。

在这里插入图片描述
为什么这样分,一方面也是为了符合ImageFolder中数据的输入。

import torch
from torchvision.datasets import ImageFolder
from torchvision import transforms
import torch.utils.data as Data
import matplotlib.pyplot as plt
from model import GoogLeNet, Inception
import torch.nn as nn
import pandas as pd
# 处理和准备训练和验证数据集。
def train_val_data_process():"""处理和划分训练和验证数据集,并返回对应的数据加载器。Returns:tuple: 包含两个数据加载器的元组,分别对应训练集和验证集。"""# 定义数据集的路径ROOT_TRAIN = r'data\train'# 归一化操作,它通常用于图像数据的预处理(TODO 不同数据,归一化的均值和标准差不同)normalize = transforms.Normalize([0.162, 0.151, 0.138], [0.058, 0.052, 0.048])# 首先,图像被调整到224x224的大小,然后转换为PyTorch的Tensor格式,最后应用之前定义的归一化操作。train_transform = transforms.Compose([transforms.Resize((224, 224)), transforms.ToTensor(), normalize])# 加载数据集train_data = ImageFolder(ROOT_TRAIN, transform=train_transform)# 80%的数据被分配给训练集,20%的数据被分配给验证集。train_data, val_data = Data.random_split(train_data, [round(0.8*len(train_data)), round(0.2*len(train_data))])# 使用DataLoader类为训练和验证集创建了数据加载器train_dataloader = Data.DataLoader(dataset=train_data,batch_size=16,shuffle=True,num_workers=2)val_dataloader = Data.DataLoader(dataset=val_data,batch_size=16,shuffle=True,num_workers=2)return train_dataloader, val_dataloader

首先,归一化操作的目的是使得神经网络训练的更好。

然后,图像被调整到224x224的大小,然后转换为PyTorch的Tensor格式,最后应用之前定义的归一化操作。

接下来这个ImageFolder在我的文章:Pytorch的ImageFolder数据加载器 中讲过了。

然后就是random_split函数了。我在前文也讲过了,这里为什么需要用到round()函数,是因为原始数据被分割为训练集和验证集时,得确保分割长度的总和等于数据集的长度。round函数是用来四舍五入的,而不是都是往下取整。这样就确保了分割长度的总和等于数据集的长度

接着,使用DataLoader类去创建数据加载器,方便后续训练的时候用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/42887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

名企面试必问30题(二十五)—— 你手上还有没有其他的offer?

1.思路 主要考察你的意向度、时长竞争力和薪资空间,如果回答有offer,需要准备面试官追问还在考虑的原因。 2.参考解答 方式一: “目前我还没有其他的 offer。我一直非常专注于寻找真正适合我,并且能让我充分发挥自身能力和潜力的工…

spring boot(学习笔记第十二课)

spring boot(学习笔记第十二课) Spring Security内存认证&#xff0c;自定义认证表单 学习内容&#xff1a; Spring Security内存认证自定义认证表单 1. Spring Security内存认证 首先开始最简单的模式&#xff0c;内存认证。 加入spring security的依赖。<dependency>…

JDBC的基本认识

前提 在了解和学习JDBC之前&#xff0c;大家 已经学习过 java语言 和数据库的基本知识了&#xff0c;今天这篇博客的核心&#xff0c;就是告诉大家 &#xff0c;jdbc 是连接java编译器和数据库&#xff0c;是使用java对数据库进行操作的。 正文 JDBC简介 概念 JDBC的本质 1…

【软件分享】气象绘图软件Panoply

气象是大气中的物理现象&#xff0c;气象要素则是表明大气物理状况的要素&#xff0c;主要的气象要素有降水、风、气压、湿度等。为了研究气象要素在空间上的分布和运动状况&#xff0c;我们需要对气象要素进行空间上进行可视化&#xff0c;这个时候就需要气象领域的一些的绘图…

机械设计师转大模型岗位,我是抓住风口的猪,真能起飞!

大模型&#xff08;如人工智能、机器学习和深度学习模型&#xff09;可以通过提供先进的模拟、优化和自动化工具来赋能机械设计师。这些工具可以帮助机械设计师更高效地完成设计任务&#xff0c;优化产品设计&#xff0c;并提高创新速度。以下是机械设计师如何转行大模型&#…

Monaco 多行提示的实现方式

AI 代码助手最近太火爆&#xff0c;国内有模型厂商都有代码助手&#xff0c;代码助手是个比较典型的 AI 应用&#xff0c;主要看前端&#xff0c;后端的模型都差不多&#xff0c;国内外都有专门的代码模型。现在都是集中在 VSCode 和 Idea的插件&#xff0c;本文通过 Monaco 实…

uniapp实现光标闪烁(配合自己的键盘)

前言 因为公司业务需要&#xff0c;所以我们... 演示 其实就是Chat自动打字效果 代码 键盘请看这篇文件 <template> <view class"list"><view class"title"><text>手机号码</text></view><view class"ty…

CTFShow的RE题(四)

真的是签到 给的是无后缀的 zip 文件&#xff0c;解压发现需要密码&#xff0c;也没有提示&#xff0c;猜测可能是 zip 伪加密 &#xff08;走错厂了吧&#xff09; zip是否加密 首先就是看开头的6 &#xff0c;7byte&#xff0c;和中间 01 02 后的 5 &#xff0c;6byte 成功解…

Proxifier代理的其他妙用方法(内网渗透、反溯源、小程序公众号)

目录 配置说明 1. 通过Proxifier进行内网渗透 2. 通过Proxifier将VM虚拟机代理 3. 通过Proxifier进行小程序抓包 4. 补充 文章截取处 配置说明 配置其他的之前,要新增一个代理规则,如下: 127.0.0.1; ::1 让它 Direct (直接连接,即不走任何代理)即可 说明: ::1是I…

LabVIEW透视变换

透视变换概述源程序在www.bjcyck.com下载 透视变换是一种几何变换&#xff0c;用于对图像进行扭曲&#xff0c;使其看起来从不同角度拍摄。这在计算机视觉和图像处理领域非常重要&#xff0c;例如在投影校正和图像配准中。LabVIEW提供了强大的图像处理工具&#xff0c;利用其V…

南方CASS:地理信息系统的卓越之选

引言 作为一名长期从事地理信息系统&#xff08;GIS&#xff09;工作的专业人士&#xff0c;我对各类地理信息处理软件有着深入的了解和使用经验。其中&#xff0c;南方CASS&#xff08;南方测绘计算机辅助设计系统&#xff09;无疑是我最为推崇的一款软件。它不仅功能强大&am…

无人机群辅助边缘计算系统的任务卸载和资源分配联合优化

源自&#xff1a;系统工程与电子技术 作者&#xff1a;刘世豪 黄仰超 胡航 司江勃 韩蕙竹 安琪 注&#xff1a;若出现无法显示完全的情况&#xff0c;可 V 搜索“人工智能技术与咨询”查看完整文章 摘 要 为提升无人机群辅助边缘计算系统在负载不均衡场景下的性能, 构…

maxwell启动报错:Could not find first log file name in binary log index file

出现该问题是因为&#xff1a;maxwell 读取的是 mysql 的 binlog 日志&#xff0c;而配置文件中的两个值与 binlog 的最新值没有保持一致导致 1. 切换到maxwell的库 show master status;记住图片中的 FIle 和 Position 2. 修改maxwell的配置 SELECT * from positions p ;将…

Vue3 项目中 svg 图标的封装及使用

安装 npm install vite-plugin-svg-icons -D在 vite.config.ts 中配置插件&#xff1a; import { createSvgIconsPlugin} from vite-plugin-svg-icons; import path from path;plugins: [createSvgIconsPlugin({iconDirs: [path.resolve(process.cwd(), src/assets/icons)],s…

Java并发关键字

并发关键字 关键字: synchronized详解关键字: volatile详解关键字: final详解 # Synchronized可以作用在哪里? 对象锁方法锁类锁 # Synchronized本质上是通过什么保证线程安全的? 加锁和释放锁的原理 深入JVM看字节码&#xff0c;创建如下的代码&#xff1a; public cl…

探索TXE、TC、RXNE标志位在串口通信中的轮询与中断应用

浅谈一下STM32串口中断之TXE,TC,RXNE标志位 之前做一个项目&#xff0c;用到了串口中断&#xff0c;但是对TXE、TC和RXNE标志位的作用和使用方法不是很清楚&#xff0c;导致在调试过程中遇到了一些问题。通过查阅相关资料和实际操作&#xff0c;我对这三个标志位有了更深入的了…

【机器学习】——决策树模型

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

材料科学SCI期刊,IF=6+,2个月录用,审稿速度非常快

一、期刊名称 Journal of Materials Research and Technology 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;材料科学 影响因子&#xff1a;6.2 中科院分区&#xff1a;2区 三、期刊简介 《材料研究与技术杂志》为发表与材料加工、性能和性能相关的理论…

el-tree 获取当前勾选节点的选中状态以及选中值对象 触发check-change多次事件问题原因

1.需求 现在需要一个树状结构的资产树 但是现在需求是 获取当前选中的值的状态是选中还是取消选中 然后再用当前选中 or 取消选中的值 进行 选中 or 取消选中的操作 一开始使用的是 check-change 方法 接收参数如图 但是我勾选父节点 或者 子节点后 他会打印一堆数据 是因…

园区智慧能源可视化:智能监控与优化能源管理

通过图扑可视化技术&#xff0c;搭建智慧光伏园区&#xff0c;实时监控园区光伏系统的运行状态&#xff0c;分析数据并优化能源管理&#xff0c;提高发电效率和维护效率&#xff0c;助力园区实现绿色可持续发展。