Pytorch使用torch.utils.data.random_split拆分数据集,拆分后的数据集状况

对于这个API,我最开始的预想是从 '猫1猫2猫3猫4狗1狗2狗3狗4' 中分割出 '猫1猫2狗4狗1' 和 '猫4猫3狗2狗3' ,但是打印结果和我预想的不一样

数据集文件的存放路径如下图

测试代码如下

python 复制代码
import torch
import torchvision

transform = torchvision.transforms.Compose([
    torchvision.transforms.Resize((512,512)),  # 调整图像大小为 224x224
    torchvision.transforms.ToTensor(),  # 转换为张量
    torchvision.transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # 归一化
])
dataset = torchvision.datasets.ImageFolder('C:\\Users\\ASUS\\PycharmProjects\\pythonProject1\\cats_and_dogs_train',
                                                 transform=transform)

val_ratio = 0.2
val_size = int(len(dataset) * val_ratio)
train_size = len(dataset) - val_size
train_dataset, val_dataset = torch.utils.data.random_split(dataset, [train_size, val_size])


cats_num = 0
dogs_num = 0
for x,y in train_dataset:
    if y == 0:
        cats_num += 1
    else:
        dogs_num += 1

print("cats_num: ",cats_num)
print("dogs_num: ",dogs_num)

cats_num2 = 0
dogs_num2 = 0
for x,y in val_dataset:
    if y == 0:
        cats_num2 += 1
    else:
        dogs_num2 += 1

print("cats_num2: ",cats_num2)
print("dogs_num2: ",dogs_num2)

输出如下

可以看到总共25000张图片的数据集,分割后并不是cats_num:10000,dogs_num:10000,cats_num2:2500,dogs_num2:2500

也就是说,分割后的状况是猫狗的数量并不一定相等,如结果为 '猫1猫2猫4狗1' 和 '狗4猫3狗2狗3'

相关推荐
EnCi Zheng7 小时前
AI Agent工具误调用怎么解决-从参数校验到高危二次确认的四层工程防线
大数据·数据库·人工智能
一级新生7 小时前
多智能体协作:常用协作模式详解
人工智能·状态模式·agent·多智能体·智能体
Bruce_Liuxiaowei7 小时前
AI 红队实践:用 garak 扫描本地 qwen3:8b 模型
人工智能·大模型安全
szxinmai主板定制专家7 小时前
基于 AM62x + Artix-7 的低功耗 ARM+FPGA 平台在轨道交通车门控制中的应用
arm开发·人工智能·fpga开发·zynq·am62x
愤怒的代码7 小时前
KV Cache 压缩技术:把大模型的“记忆”塞进一个小盒子
人工智能·agent
lucas_AI7 小时前
PyTorch、JAX 全中招:Softmax 藏了两个数值 Bug,DeepMind 用十余行代码修好了
深度学习
计算机毕业编程指导师7 小时前
基于深度学习的电子垃圾与混合材料图像分类系统实战:ResNet-50迁移学习+Django部署+三种识别入口完整方案
python·深度学习·毕业设计·resnet·课程设计·图像分类·电子垃圾
外收内放7 小时前
FastAPI猜字谜实战(5):会话管理
开发语言·python·学习·fastapi
Ai-_Man7 小时前
Microsoft Copilot对话数据怎么导入到另外一个Microsoft Copilot账号里去?AI导出鸭
开发语言·javascript·人工智能·microsoft·chatgpt·ecmascript·copilot
aneasystone本尊7 小时前
学习大模型训练的显存管理与混合精度
人工智能