首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在训练中更换数据采集器样本

问在训练中更换数据采集器样本
EN

Data Science用户
提问于 2021-05-26 18:33:29
回答 1查看 704关注 0票数 0

最初,数据加载器是用某些示例创建的。在训练过程中,我需要更换一个数据采集器中的样本。如何把它替换成数据采集器。

代码语言:javascript
复制
train_dataloader = DataLoader(train_data, sampler=train_sampler, batch_size=batch_size)


for sample,label in train_dataloader:
        prediction of model
        select misclassified samples and change them in train_dataloader but      how to change sample in train_dataloader

在培训过程中,需要对错误分类的样本进行修改。那么如何在train_dataloader中替换一个示例呢?

EN

回答 1

Data Science用户

发布于 2021-05-27 04:02:02

工艺每样

通常,您将通过创建继承torch.utils.data.Dataset的类并在__getitem__方法中进行处理,从而在示例级别处理数据。

代码语言:javascript
复制
from torch.utils.data import Dataset
class MyDataset(Dataset):
  def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)

  def __getitem__(self, i):
    # Call the __getitem__ from Dataset class
    sample = super().__getitem__(i)
    # ...Do some processing on the sample here
    return sample

train_data = MyDataset()
train_dataloader = DataLoader(train_data, sampler=train_sampler, batch_size=batch_size)

工艺每批

可以使用collate_fn参数torch.utils.data.DataLoader来指定处理批处理的自定义函数。

代码语言:javascript
复制
from torch.utils.data import Dataset, DataLoader

def collate_fn(samples):
  # samples is a list of samples you get from the __getitem__ function of your torch.utils.data.Dataset instance
  # You can write here whatever processing you need before stacking samples into one batch of data
  batch = torch.stack(samples, dim=0)
  return batch

train_data = Dataset()
train_dataloader = DataLoader(train_data, sampler=train_sampler, batch_size=batch_size, collate_fn=collate_fn)
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/94943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档