在pytorch中加载自定义数据集

乌鸦卓

通常,在pytorch中加载数据时,请执行以下操作

for x, y in dataloaders:
    # Do something

但是,在名为MusicNet的数据集中,他们声明了自己的数据集和数据加载器,如下所示

train_set = musicnet.MusicNet(root=root, train=True, download=True, window=window)#, pitch_shift=5, jitter=.1)
test_set = musicnet.MusicNet(root=root, train=False, window=window, epoch_size=50000)

train_loader = torch.utils.data.DataLoader(dataset=train_set,batch_size=batch_size,**kwargs)
test_loader = torch.utils.data.DataLoader(dataset=test_set,batch_size=batch_size,**kwargs)

然后他们像这样加载数据

with train_set, test_set:
    for i, (x, y) in enumerate(train_loader):
        # Do something

问题1

我不明白为什么没有代码行不通with train_set, test_set

问题2

另外,如何访问数据?

我试过了

train_set.access(2560,0)

with train_set, test_set:
    x, y = train_set.access(2560,0)

他们要么给我一条错误消息,如

----> 1 train_set.access(2560,0)中的KeyError Traceback(最近一次通话最后一次)

/workspace/raven_data/AMT/MusicNet/pytorch_musicnet/musicnet.py in access(self,rec_id,s,shift,jitter)106107 if self.mmap:-> 108 x = np.frombuffer(self.records [rec_id] [0] [ssz_float:int(s + scaleself.window)* sz_float],dtype = np.float32).copy()109否则:110 fid,_ = self.records [rec_id]

KeyError:2560

或者给我一个空xy

安德鲁·纳吉布(Andrew Naguib)

问题1

我不明白为什么没有代码行不通with train_set, test_set

为了能够torch.utils.data.DataLoader自定义数据集设计一起使用,您必须创建一个数据集的类,该类将子类化(并实现特定功能)并将其传递给数据加载器,即使他们这样说:torch.utils.data.Dataset

所有其他数据集都应将其子类化。所有子类均应覆盖__len__,提供数据集的大小和,并__getitem__支持从0到len(self)互斥的整数索引。

这是在以下情况中发生的:

train_set = musicnet.MusicNet(root=root, train=True, download=True, window=window)#, pitch_shift=5, jitter=.1)

test_set = musicnet.MusicNet(root=root, train=False, window=window, epoch_size=50000)

train_loader = torch.utils.data.DataLoader(dataset=train_set,batch_size=batch_size,**kwargs)
test_loader = torch.utils.data.DataLoader(dataset=test_set,batch_size=batch_size,**k

如果检查他们musicnet.MusicNet,您会发现他们这样做了。

问题2

另外,如何访问数据?

有可能的方法:

仅从数据集中获取批次,可以执行以下操作:

batch = next(iter(train_loader))

要访问整个数据集(尤其是在您的示例中)

dataset = train_loader.dataset.records

.records我说是这部分可能因数据集而异,.records因为这是我在这里找到的

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用PyTorch加载图像的自定义数据集

如何将基于自定义图像的数据集加载到Pytorch中以用于CNN?

使用PyTorch实施自定义数据集

自定义数据集不接受 PyTorch 中的参数

在Pytorch中转换自定义数据集时出错

将自定义PyTorch数据集拆分为训练加载器和验证加载器:即使拆分了数据集,两者的长度也相同?

如何加载自定义数据集以馈送到CNN?

在Scikit中加载自定义数据集(类似于20个新闻组集)以对文本文档进行分类

如何制作类似Torchvision数据集的自定义pytorch数据集?

如何在 Azure 数据工厂自定义活动中加载 python 库?

在 scikit-learn 中加载自定义文本数据的问题

在 Keras 中加载模型、自定义数据、大量论证后损失函数大幅增加

在pytorch中对自定义数据集进行数据预处理(transform.Normalize)

PyTorch自定义数据集数据加载器返回(键的)字符串而不是张量

PyTorch:如何将DataLoader用于自定义数据集

Pytorch 自定义数据集类给出错误的输出

pytorch自定义数据集:DataLoader返回张量列表,而不是列表的张量

如何在Pytorch中为图像及其遮罩创建自定义数据集?

使用PyTorch和TorchVision对自定义数据集进行训练有效测试拆分

PyTorch DataLoader 在自定义数据集上返回列表而不是张量

在自定义WordPress插件中加载图片

在Java 8中加载自定义TimeZoneNameProvider

如何在Firemonkey中加载自定义光标?

如何在React中加载自定义脚本?

在AWS Lambda Spring Boot中加载自定义ApplicationContextInitializer

如何自动在Express中加载自定义文件?

WebProfiler未在自定义环境中加载

在自定义助手 Codeigniter 4 中加载视图

如何在SVG JS中加载自定义svg