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

这篇具有很好参考价值的文章主要介绍了Pytorch使用torch.utils.data.random_split拆分数据集,拆分后的数据集状况。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

Pytorch使用torch.utils.data.random_split拆分数据集,拆分后的数据集状况,Pytorch,pytorch,人工智能,深度学习,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)

输出如下

Pytorch使用torch.utils.data.random_split拆分数据集,拆分后的数据集状况,Pytorch,pytorch,人工智能,深度学习,python

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

也就是说,分割后的状况是猫狗的数量并不一定相等,如结果为 '猫1猫2猫4狗1' 和 '狗4猫3狗2狗3'文章来源地址https://www.toymoban.com/news/detail-717692.html

到了这里,关于Pytorch使用torch.utils.data.random_split拆分数据集,拆分后的数据集状况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch进行优化-使用索引拆分(Split)和索引收缩(shrink )

    一、索引拆分和收缩的场景 在Elasticsearch集群部署的初期我们可能评估不到位,导致分配的主分片数量太少,单分片的数据量太大,导致搜索时性能下降,这时我们可以使用Elasticsearch提供的Split功能对当前的分片进行拆分,拆分到具有更多主分片的新索引。 而相反的,在数据

    2024年02月05日
    浏览(63)
  • 【Shell 命令集合 文件管理】Linux 拆分文件 split命令使用教程

    Shell 命令专栏:Linux Shell 命令全解析 split命令是Linux系统中的一个用于拆分文件的命令。它可以将一个大文件拆分成多个小文件,以便于传输、存储或处理。下面是split命令的详细描述: -b 大小 :指定每个输出文件的大小。大小可以使用后缀(如K、M、G)来表示,默认单位是

    2024年02月10日
    浏览(68)
  • 【Pytorch】梯度裁剪——torch.nn.utils.clip_grad_norm_的原理及计算过程

    众所周知,梯度裁剪是为了防止梯度爆炸。在训练FCOS算法时,因为训练过程出现了损失为NaN的情况,在github issue有很多都是这种训练过程出现loss为NaN,作者也提出要调整梯度裁剪的超参数,于是理了理梯度裁剪函数 torch.nn.utils.clip_grad_norm_ 的计算过程,方便调参。 torch.nn.u

    2024年02月12日
    浏览(75)
  • 详解torch.nn.utils.clip_grad_norm_ 的使用与原理

    本文是对梯度剪裁: torch.nn.utils.clip_grad_norm_()文章的补充。所以可以先参考这篇文章 从上面文章可以看到, clip_grad_norm 最后就是对所有的梯度乘以一个 clip_coef ,而且乘的前提是 clip_coef一定是小于1的 ,所以,按照这个情况: clip_grad_norm 只解决梯度爆炸问题,不解决梯度消失

    2023年04月08日
    浏览(38)
  • 如何使用torch.nn.utils.prune稀疏神经网络,以及如何扩展它以实现自己的自定义剪裁技术

    最新的深度学习技术依赖于难以部署的过度参数化模型。 相反,已知生物神经网络使用有效的稀疏连通性。 为了减少内存,电池和硬件消耗,同时又不牺牲精度,在设备上部署轻量级模型并通过私有设备上计算来确保私密性,确定通过减少模型中的参数数量来压缩模型的最

    2024年02月12日
    浏览(44)
  • 【Kotlin】字符串操作 ① ( 截取字符串函数 substring | 拆分字符串函数 split | 解构语法特性 )

    Kotlin 中提供了 截取字符串函数 substring , 可接收 IntRange 类型的参数 , 这是 整数范围 类型 ; 截取字符串函数 substring 函数原型为 : 整数范围类型 : 其整数范围是 {0 , 1 , 2 , 3} ; 其整数范围是 {0 , 1 , 2} ; 代码示例 : 执行结果 : 拆分字符串函数 split 返回的是 List 集合 ; 拆分字符串函

    2023年04月08日
    浏览(62)
  • 【pytorch】torch.cdist使用说明

    torch.cdist的使用介绍如官网所示, 它是批量计算两个向量集合的距离。 其中, x1和x2是输入的两个向量集合。 p 默认为2,为欧几里德距离。 它的功能上等同于 scipy.spatial.distance.cdist (input,’minkowski’, p=p) 如果x1的shape是 [B,P,M], x2的shape是[B,R,M],则cdist的结果shape是 [B,P,R] x1一般

    2024年01月15日
    浏览(47)
  • splatter marker gene random data

    https://github.com/theislab/single-cell-tutorial/blob/master/supplementary_scripts/Splatter-marker-genes-random-data.ipynb

    2024年02月11日
    浏览(40)
  • PyTorch之Torch Script的简单使用

    TorchScript 简介 Torch Script Loading a TorchScript Model in C++ TorchScript 解读(一):初识 TorchScript libtorch教程(一)开发环境搭建:VS+libtorch和Qt+libtorch Torch Script 是一种序列化和优化 PyTorch 模型的格式,在优化过程中,一个 torch.nn.Module 模型会被转换成 Torch Script 的 torch.jit.ScriptModule 模

    2024年04月09日
    浏览(33)
  • 神经网络训练中的 data splits 是什么

    在神经网络训练中,\\\"data splits\\\" 是指将可用数据集划分为不同的子集,以便在训练、验证和测试过程中使用。 通常,常见的数据拆分包括以下几个部分: 训练集(Training Set):这是用于训练神经网络模型的数据子集。通过在训练集上迭代训练模型,神经网络可以学习特征和模

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包