zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python视觉深度学习系列教程 第二卷 第8章 使用HDF5和大型数据集

Python教程学习数据 系列 深度 视觉 大型
2023-09-14 09:01:35 时间

        第二卷 第八章 使用HDF5和大型数据集

        到目前为止,在本书中,我们只使用了适合我们机器主内存的数据集。对于小数据集,这是一个合理的假设——我们只需加载每个单独的图像,对其进行预处理,并允许它通过我们的网络馈送。然而,对于大规模深度学习数据集(例如ImageNet),我们需要创建一次只访问数据集的一部分(即小批量)的数据生成器,然后允许该批次通过网络。

        幸运的是,Keras附带的方法允许您使用磁盘上的原始文件路径作为训练过程的输入。您不必将整个数据集存储在内存中——只需将图像路径提供给Keras数据生成器,您的图像将分批加载并通过网络馈送。

        然而,这种方法效率极低。驻留在磁盘上的每个图像都需要I/O操作,这会给训练管道带来延迟。训练深度学习网络已经足够慢了——我们会尽可能地避免I/O瓶颈。

        一个更优雅的解决方案是为原始图像生成HDF5数据集,就像我们在第3章关于迁移学习和特征提取中所做的那样,只是这次我们存储图像本身而不是提取的特征。HDF5不仅能够存储海量数据集,而且还针对I/O操作进行了优化,尤其是从文件中提取批次(称为“切片”)。正如我们将在本书的其余部分看到的那样,采取额外步骤将驻留在磁盘上的原始图像打包到HDF5文件中,这使我们能够构建一个深度学习框架,该框架可用于快速构建数据集和训练深度学习网络在他们之上。

        在本