问题记录2:关于使用torch.utils.data.TensorDataset()和torch.utils.data.DataLoader()时遇到的一些问题

本文记录学习过程中遇到的问题、我的解决过程以及学习心得,如有错误之处,欢迎指正!

在学习用pytorch进行数据批处理的过程中用到了torch.utils.data.TensorDataset()和torch.utils.data.DataLoader()函数,练习的代码如下:

import torch
import torch.utils.data as Data

torch.manual_seed(1)    # 这句有关生成随机数,他会使得随机生成的结果是确定的


BATCH_SIZE= 5   # 设置批次训练数量

# 定义数据
x = torch.linspace(1, 10, steps=10)    # torch.linspace()线性等分向量,前两个参数是向量的开始和结束值,steps是分割出的点数,缺省值100
y = torch.linspace(10, 1, steps=10)    # x,y都是十维向量

torch_dataset = Data.TensorDataset(x, y)    # x,y对应整合进数据集,应该是一个二维数据的队列(10*2矩阵)

loader = Data.DataLoader(
    dataset=torch_dataset,      # 加载数据集
    batch_size=BATCH_SIZE,      # 批次大小
    shuffle=True,                # 是否打乱顺序训练
    num_workers=2               # 设置线程数
)

def show_batch():
    for epoch in range(3):   # 进行三轮训练
        for step, (batch_x, batch_y) in enumerate(loader):  #
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
torch.utils.data.dataloader.DataLoader类中,常用的一些函数包括: 1. `__init__(self, dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None)`:这个函数是DataLoader类的构造函数,用于初始化DataLoader对象。它接受多个参数,包括dataset(数据集),batch_size(批处理大小),shuffle(是否打乱数据顺序),sampler(采样器),num_workers(用于加载数据的线程数),等等。 2. `__iter__(self)`:这个函数返回一个迭代器对象,用于在训练过程中逐个获取数据。在这个函数内部,会调用DataLoaderIter类的构造函数,返回一个DataLoaderIter对象。 3. `__len__(self)`:这个函数返回数据集的总样本数。 4. `sampler`:这个属性是一个用于采样数据的对象。可以使用它来实现自定义的数据采样逻辑,或者使用默认的RandomSampler来进行随机采样。 5. `batch_sampler`:这个属性是一个用于批处理采样的对象。可以使用它来实现自定义的批处理采样逻辑,或者使用默认的BatchSampler来进行批处理采样。 6. `collate_fn`:这个属性是一个用于将单个样本组合成批次的函数。可以使用它来实现自定义的批处理逻辑,或者使用默认的collate_fn来进行默认的批处理。 7. `pin_memory`:这个属性指定是否将Tensor数据存储在固定内存中,以提高数据加载效率。 8. `drop_last`:这个属性指定是否丢弃最后一个不完整的批次,如果设置为True,则会丢弃最后一个不满足batch_size的批次。 以上是一些常用的函数和属性,当然还有其他一些函数和属性可以根据具体需求来使用
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值