首页 > 其他分享 >Pytorch笔记|小土堆|P5-6|Dataset类

Pytorch笔记|小土堆|P5-6|Dataset类

时间:2024-08-01 18:28:09浏览次数:15  
标签:__ img P5 self label Pytorch path Dataset dir

Dataset类
作用:模型的数据集接口
__init__将对象实例化,创建对象时obj = class(..., ...)会立即被调用,需要提供(输入)类中使用到的变量。
__getitem__通过img, label = obj[idx]获取(返回)每一个数据和label
__len__通过len(obj)获取(返回)数据量

点击查看代码
from torch.utils.data import Dataset
import os
from PIL import Image

# 数据集下载地址:https://download.pytorch.org/tutorial/hymenoptera_data.zip

class Mydata(Dataset):
    def __init__(self, root_dir, label_dir):
        # self为全局变量
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(self.root_dir, self.label_dir)
        self.img_path = os.listdir(self.path) # 获取path路径下所有子文件的名称
    def __getitem__(self, idx):
        img_name = self.img_path[idx] # idx索引
        img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)
        img = Image.open(img_item_path)
        label = self.label_dir
        return img, label
    def __len__(self):
        return len(self.img_path)

root_dir = r'D:\ai-learning\pytorch\hymenoptera_data\train' # 改为自己的路径
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = Mydata(root_dir, ants_label_dir)
bees_dataset = Mydata(root_dir, bees_label_dir)

train_dataset = ants_dataset + bees_dataset

img, label = train_dataset[0]
img.show()
len(train_dataset)

一个可以参考的通用数据集接口:https://blog.csdn.net/leviopku/article/details/99958182

参考:
[1]https://www.cnblogs.com/seansheep/p/16163159.html
[2]https://www.bilibili.com/video/BV1hE411t7RN?p=7&vd_source=fa1d778abbb911d02be7ac36f2b2e32a

标签:__,img,P5,self,label,Pytorch,path,Dataset,dir
From: https://www.cnblogs.com/xjl-ultrasound/p/18337058

相关文章

  • Pytorch笔记|小土堆|P1-5
    Pytorch环境安装及配置1、创建conda环境,名为pytorchcondacreate-npytorchpython=3.102、在任务管理器的性能中确认显卡,是否支持CUDA。其次,确认显卡驱动,cuda9.2支持396.26以上的驱动,可以在命令行使用nvidia-smi来看自己驱动是否满足要求,如果低于396.26,可以使用各种管家更......
  • pytorch中保证代码复现的随机种子设置(Reproducibility)
    pytorch中保证代码复现的随机种子设置(Reproducibility)关注B站可以观看更多实战教学视频:hallo128的个人空间1.代码复现的必要性代码是用来设置整个笔记本的种子,以保证每次运行时得到相同的结果,实现结果的可重现性。首先,使用numpy和random库设置种子,然后使用torch库设置......
  • AP510X 单路低压差线性恒流芯片 LED手电筒台灯车灯照明方案
    产品描述AP510X是一系列电路简洁的单路线性LED恒流芯片,适用于3-60V电压范围的LED恒流调光领域。AP510X采用我司算法,可以实现高精度的恒流效果,输出电流恒流精度≤±3%,电源供电工作范围为3-40V,可以轻松满足锂电池以及市场上面中低压的应用需求。PWM调光支持高辉应用,可以支持20K以......
  • WeiPHP5.0 sql注入漏洞
    侵权声明本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系:[[email protected]]。我们将在确......
  • 从PyTorch官方的一篇教程说开去(5 - 神经网络 torch.nn)
    神经网络长啥样?有没有四只眼睛八条腿?借图镇楼- 真的是非常经典,可以给下面的解释省掉很多力气。分3个维度阐述- 1)输入数据集。假如你自己去微调一下大模型就知道,最开始的一步就是要准备(足够大的)数据集,比如百度就要求1kw条+的数据集,否则就不给你训练。PyTorch官方的数据......
  • 从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分
    原文链接:从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类教程https://mp.weixin.qq.com/s?__biz=MzUzNTczMDMxMg==&mid=2247610610&idx=5&sn=f973c3e430c89d6123ca8f4892086c55&chksm=fa827115cdf5f8036ef8111c6f06cf592a8c0587......
  • AP5123 宽输入5-150V 外置MOS管平均电流型LED降压恒流驱动器 手电筒与汽车灯方案
    产品描述AP5123是一款外围电路简单的Buck型平均电流检测模式的LED恒流驱动器,适用于5-150V电压范围的非隔离式大功率恒流LED驱动领域。AP5123采用PWM工作模式,频率可变。利用平均电流检测模式,因此具有优异的负载调整率特性,高精度的输出电流特性。AP5123集成了高低亮功能,可......
  • 计算 Pytorch 中数据标签的梯度
    我正在努力实现研究论文中的一项技术,我需要计算相对于数据标签的梯度。这是我正在遵循的方法:计算损失相对于模型参数(grad1)的梯度。计算grad1相对于数据标签的梯度。但是,我遇到一个问题,即相对于数据标签的梯度始终为“无”。似乎数据标签(y)不是计算......
  • PyTorch 数据集中某些类的训练验证拆分结果为零样本
    我正在使用PyTorch进行图像分类。我的数据集是目录格式。我已经设置了数据管道和模型。尽管如此,我在训练验证分割中遇到了一个问题,其中某些类在训练或验证数据集中的样本为零。这是我的代码和设置的相关部分:classCustomDataset(Dataset):def__init__(self,root_dir,......
  • PyTorch深度学习快速入门(中)
    PyTorch深度学习快速入门(中)一、Containers(神经网络的基本骨架)(一)Module的使用(二)Sequential的使用<搭建小实战>二、ConvolutionLayers(卷积层)(一)torch.nn.functional中conv2d的使用(二)torch.nn中Conv2d的使用三、Poolinglayers(池化层)(一)池化层的介绍(二)MaxPool2d的......