【发布时间】:2018-07-25 19:00:05
【问题描述】:
情况如下:我正在处理一个大型 Tensorflow 记录文件。大约 50 GB。但是,我正在进行此培训的机器具有 128 GB 的 RAM。 50 小于 128,因此即使这是一个大文件,您也会认为可以将其保存在内存中并节省慢 I/O 操作符。但是我正在使用 TFRecordDataset 类,似乎整个 TFRecord 系统是专门设计为不这样做的,而且我看不出有任何方法可以强制它将记录保存在内存中。由于它在每个 epoch 都会重新加载它们,因此我在从该 50 GB 文件读取的缓慢 I/O 操作上浪费了大量时间。
我想我可以将记录加载到 python 中的内存中,然后使用 feed_dict 将它们一一加载到我的模型中,绕过整个 Dataset 类。但这似乎是一种不太优雅的处理方式,需要重新设计。如果我可以强制 TFRecordDataset 将所有内容加载到内存中并在不同时期之间保持它,那么一切都会简单得多......
【问题讨论】:
-
解决问题的另一种方法可能是在您的操作系统中创建一个 ramdisk 并将 Tensorflow 文件复制到 ramdisk 并让程序从那里读取它。完成后,删除 ramdisk。
标签: tensorflow tensorflow-datasets tfrecord