如何在pytorch上加载预批处理的数据集

如何在pytorch上加载预批处理的数据集,pytorch,h5py,Pytorch,H5py,我有一个巨大的数据集,无法存储在内存中,所以我预先批处理了几个文件。如何使我的数据集和数据加载器类一次加载一个bath 所有文件都具有相同的基本名称和唯一的批号 示例文件将被称为o3_batch_1.hdf5或o3_batch_2.hdf5 最大批次号为o3\u批次号为102.hdf5 以下是我迄今为止所尝试的: 这样行吗? 长度将是数据的总长度 batchNum将是文件末尾的非唯一编号 base是文件共享的通用名称 类数据(数据集): 通常,这是通过在\uuuuu init\uuuuu期间

我有一个巨大的数据集,无法存储在内存中,所以我预先批处理了几个文件。如何使我的数据集和数据加载器类一次加载一个bath

  • 所有文件都具有相同的基本名称和唯一的批号
  • 示例文件将被称为o3_batch_1.hdf5或o3_batch_2.hdf5
  • 最大批次号为o3\u批次号为102.hdf5
以下是我迄今为止所尝试的:

这样行吗? 长度将是数据的总长度

batchNum将是文件末尾的非唯一编号

base是文件共享的通用名称

类数据(数据集):


通常,这是通过在
\uuuuu init\uuuuu
期间定义包含文件名的列表或字典属性来完成的,然后在
\uuuuuu getitem\uuuuu
期间加载适当的数据并返回它。您尚未提供有关数据在磁盘上的存储方式或预期输出格式的详细信息,因此我们无法真正提供实现详细信息。感谢您的帮助通常通过在
\uuuuu init\uuuu
期间定义包含文件名的列表或字典属性,然后在
\uuu获取项目并返回它。您尚未提供有关数据存储在磁盘上的方式或预期输出格式的详细信息,因此我们无法提供实现详细信息。谢谢您的帮助
# Constructor
def __init__(self, base, batchNum, length):
    name = base + str(batchNum) 
    with h5py.File(name, "r") as f:
        puzz = np.array(f.get('puzzle'))
        sol = np.array(f.get('Sol'))
    self.puzz = torch.from_numpy(puzz)
    self.sol = torch.from_numpy(sol)
    self.len = length
    
# Getter
def __getitem__(self, batchNum, index):    
    return self.puzz[index], self.sol[index]

# Get length
def __len__(self):
    return self.len