将TFRecord与大型数据集一起使用时,您是否将整个数据集保存在单个TFRecord中

时间:2019-02-14 00:18:10

标签: tensorflow

我有一个大的文本文件数据集,总共约30gb,每个文本文件的长度都不同。最初,我尝试使用keras数据生成器加载每个文件,但是训练变得非常缓慢,因此我读到使用TFRecord可以加快加载数据的速度,等等。我已经阅读了很多教程,但是我不确定如何使用TFRecord。目前,我正在使用下面的代码来读取所有文件中的“ ReadFunctionToCreateYourDataAsNumpyArray”,但在此之前我已经用完了RAM(因为每个文件还需要0填充到最长文件的长度) ,因此,您想知道是否仅加载x个样本并将其保存为单个TFRecord吗?

将tensorflow导入为tf

def _int64_feature(value):
    return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))


def _bytes_feature(value):
    return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))


image, label = ReadFunctionToCreateYourDataAsNumpyArrays()

writer = tf.python_io.TFRecordWriter('out')

feature = {'file': _bytes_feature(tf.compat.as_bytes(image.tostring())),
           'label': _int64_feature(int(label))}

example = tf.train.Example(features=tf.train.Features(feature=feature))
writer.write(example.SerializeToString())

0 个答案:

没有答案