gpt4 book ai didi

python-3.x - Pytorch DataLoader 多数据源

转载 作者:行者123 更新时间:2023-11-30 08:40:33 30 4
gpt4 key购买 nike

我正在尝试使用 Pytorch 数据加载器来定义自己的数据集,但我不确定如何加载多个数据源:

我当前的代码:

class MultipleSourceDataSet(Dataset):
def __init__ (self, json_file, root_dir, transform = None):
with open(root_dir + 'block0.json') as f:
self.result = torch.Tensor(json.load(f))

self.root_dir = root_dir
self.transform = transform

def __len__(self):
return len(self.result[0])

def __getitem__ (self):
None

数据源为root_dir = ~/Documents/blocks/下的50个 block

我将它们分开并避免之前直接组合它们,因为这是一个非常大的数据集。

如何将它们加载到单个数据加载器中?

最佳答案

对于DataLoader您需要有一个 Dataset,您的问题是您有多个 'json' 文件,并且您只知道如何从中创建一个 Dataset每个 'json' 分别。
在这种情况下你可以做的是使用 ConcatDataset包含您创建的所有单'json'数据集:

import os
import torch.utils.data as data

class SingeJsonDataset(data.Dataset):
# implement a single json dataset here...

list_of_datasets = []
for j in os.path.listdir(root_dir):
if not j.endswith('.json'):
continue # skip non-json files
list_of_datasets.append(SingeJsonDataset(json_file=j, root_dir=root_dir, transform=None))
# once all single json datasets are created you can concat them into a single one:
multiple_json_dataset = data.ConcatDataset(list_of_datasets)

现在您可以将连接的数据集输入到 data.DataLoader 中。

关于python-3.x - Pytorch DataLoader 多数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53477861/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com