【PyTorch】数据的读取和操作(Dataset, DataLoader)

本文介绍了PyTorch中数据处理的关键类Dataset和DataLoader。Dataset作为数据集的抽象类,需要实现`len()`和`getitem()`方法。DataLoader则负责批量加载数据,支持设置batch_size、是否shuffle等参数。通过DataLoader,可以方便地按批次获取数据进行训练。
摘要由CSDN通过智能技术生成

文章目录

前言

Pytorch 中比较重要的是对数据的处理,其中,进行数据读取的一般有三个类:

  • Dataset
  • DataLoader
  • DataLoaderIter

其中,这三是一个依次封装的关系:“Dataset被封装进DataLoader,DataLoader再被封装进DataLoaderIter”

Dataset

class torch.utils.data.Dataset 

表示Dataset的抽象类,所有其数据集都应该继承这个类。所有子类必须继承和实现

  • len()
  • getitem()

两个成员函数,前者提供了数据集的大小,后者支持整数索引,范围从0到len(self)。

import torch
from torch.utils.data import Dataset
import pandas as pd

# 定义自己的类
class MyDataset(Dataset):
    
    # 初始化
    def __init__(self, file_name):
        # 读入数据
        self.data 
PyTorch中,数据读取是构建深度学习模型的重要一环。为了高效处理大规模数据集,PyTorch提供了三个主要的工具:DatasetDataLoaderTensorDatasetDataset是一个抽象类,用于自定义数据集。我们可以继承Dataset类,并重写其中的__len____getitem__方法来实现自己的数据加载逻辑。__len__方法返回数据集的大小,而__getitem__方法根据给定的索引返回样本对应的标签。通过自定义Dataset类,我们可以灵活地处理各种类型的数据集。 DataLoader数据加载器,用于对数据集进行批量加载。它接收一个Dataset对象作为输入,并可以定义一些参数例如批量大小、是否乱序等。DataLoader能够自动将数据集划分为小批次,将数据转换为Tensor形式,然后通过迭代器的方式供模型训练使用。DataLoader数据准备模型训练的过程中起到了桥梁作用。 TensorDataset是一个继承自Dataset的类,在构造时将输入数据目标数据封装成Tensor。通过TensorDataset,我们可以方便地处理Tensor格式的数据集。TensorDataset可以将多个Tensor按行对齐,即将第i个样本从各个Tensor中取出,构成一个新的Tensor作为数据集的一部分。这对于处理多输入或者多标签的情况非常有用。 总结来说,Dataset提供了自定义数据集的接口,DataLoader提供了批量加载数据集的能力,而TensorDataset则使得我们可以方便地处理Tensor格式的数据集。这三个工具的配合使用可以使得数据处理变得更加方便高效。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值