如何对具有多个标签的数据集使用Pytorch数据加载器

如何对具有多个标签的数据集使用Pytorch数据加载器,pytorch,pytorch-dataloader,Pytorch,Pytorch Dataloader,我想知道如何在Pytorch中创建一个支持多种标签类型的数据加载器。如何执行此操作?您可以为数据集中的每个项目返回标签的dict,DataLoader足够智能,可以为您整理标签。i、 e.如果为每个项目提供dict,数据加载器将返回dict,其中键为标签类型。访问该标签类型的键将返回该标签类型的校对张量 见下文: 导入火炬 从torch.utils.data导入数据集,数据加载器 将numpy作为np导入 M类(数据集): 定义初始化(自): super()。\uuuu init\uuuuu()

我想知道如何在Pytorch中创建一个支持多种标签类型的数据加载器。如何执行此操作?

您可以为数据集中的每个项目返回标签的
dict
,DataLoader足够智能,可以为您整理标签。i、 e.如果为每个项目提供
dict
,数据加载器将返回
dict
,其中键为标签类型。访问该标签类型的键将返回该标签类型的校对张量

见下文:

导入火炬
从torch.utils.data导入数据集,数据加载器
将numpy作为np导入
M类(数据集):
定义初始化(自):
super()。\uuuu init\uuuuu()
self.data=np.random.randn(20,2)
打印(自我数据)
定义获取项目(自我,i):
返回self.data[i],{'label_1':self.data[i],'label_2':self.data[i]}
定义(自我):
返回长度(自身数据)
ds=M()
dl=数据加载器(ds,批量大小=6)
对于dl中的x,y:
打印(x,'\n',y)
打印(x型、y型)
[[-0.33029911 0.36632142]
[-0.25303721 -0.11872778]
[-0.35955625 -1.41633132]
[ 1.28814629  0.38238357]
[ 0.72908184 -0.09222787]
[-0.01777293 -1.81824167]
[-0.85346074 -1.0319562 ]
[-0.4144832   0.12125039]
[-1.29546792 -1.56314292]
[ 1.22566887 -0.71523568]]
张量([-0.3303,0.3663],
[-0.2530, -0.1187],
[-0.3596,-1.4163]],dtype=torch.float64)
{'item_1':张量([-0.3303,0.3663],
[-0.2530, -0.1187],
[-0.3596,-1.4163]],dtype=torch.float64),“item_2”:张量([-0.3303,0.3663],
[-0.2530, -0.1187],
[-0.3596,-1.4163]],dtype=torch.float64)}
...

我不明白这个自答问题的目的。这种数据结构对于批处理来说似乎非常不方便。请您解释一下“不方便批处理”的含义好吗?我很想知道您是否有更好的方法为具有多种标签类型的数据集设置数据加载器。
[[-0.33029911  0.36632142]
 [-0.25303721 -0.11872778]
 [-0.35955625 -1.41633132]
 [ 1.28814629  0.38238357]
 [ 0.72908184 -0.09222787]
 [-0.01777293 -1.81824167]
 [-0.85346074 -1.0319562 ]
 [-0.4144832   0.12125039]
 [-1.29546792 -1.56314292]
 [ 1.22566887 -0.71523568]]
tensor([[-0.3303,  0.3663],
        [-0.2530, -0.1187],
        [-0.3596, -1.4163]], dtype=torch.float64) 
 {'item_1': tensor([[-0.3303,  0.3663],
        [-0.2530, -0.1187],
        [-0.3596, -1.4163]], dtype=torch.float64), 'item_2': tensor([[-0.3303,  0.3663],
        [-0.2530, -0.1187],
        [-0.3596, -1.4163]], dtype=torch.float64)}
<class 'torch.Tensor'> <class 'dict'>
...