49.2_大型数据集的情况
49.2 大型数据集的情况
对于螺旋数据集这样的小型数据集,我们可以直接将ndarray实例保存在Dataset类的实例变量data和label中。但如果数据集很大,就不能使用这种实现方式了。对于这种情况,我们可以采取以下实现方式。
class BigData(Dataset): def __*_index): x = np.load('data/{}.npy'.format(index)) t = np.load('label/{}.npy'.format(index))return x, t
def __len__():
return 1000000上面的示例假定 data 目录和 label 目录内分别存储了 100 万个数据(标签)。在这种情况下,我们不在 BigData 类初始化时加载数据,而是在访问数据时加载数据。具体来说,就是在调用 getitem(index) 时加载 data 目录中的数据(步骤 53 将介绍 np.load 函数)。这里再强调一次,DeZero 的数据集类需要满足的要求是实现 getitem 和 len 这两个方法,上面的 BigData 类也满足了这个要求。因此,BigData 类的使用方式与 Spiral 类的使用方式相同。
下面使用Spiral类编写训练代码。此时需要“连接”数据。