读取.h5文件速度极慢
本文介绍了读取.h5文件速度极慢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的数据以.h5格式存储。我使用数据生成器来拟合模型,它非常慢。下面提供了我的代码片段。
其中:
DATA_GENERATOR函数如下:
Add_Data()如下:
模型培训:
我的数据集很大:data.h5是55 GB。大约需要700s才能完成一个时代。在大概6个时期之后,我得到了一个分割错误。批处理大小设置为1,否则会出现资源耗尽错误。有没有一种有效的方法来读取生成器中的data.h5,以便训练更快并且不会导致内存不足错误?
推荐答案
这是我答案的开始。我查看了您的代码,您有很多调用来读取.h5数据。根据我的统计,生成器对training_list
和validation_list
的每个循环进行6次读取调用。所以,在一个训练循环中,这几乎是2万个呼叫。(我)不清楚是否在每个训练循环中都调用了发电机。如果是,则乘以2268个循环。
我隔离了读取数据文件的PyTables调用。在此基础上,我构建了一个简单的程序来模拟您的生成函数的行为。目前,它在整个样本列表上进行单个训练循环。如果希望运行更长时间的测试,请增加n_train
和n_epoch
值。(注:代码语法正确。但是没有文件,所以无法验证逻辑。我认为这是正确的,但您可能需要修复一些小错误。)
请参阅以下代码。它应该独立运行(所有依赖项都已导入)。 它打印基本的计时数据。运行它以对您的发电机进行基准测试。
这篇关于读取.h5文件速度极慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!