我有一个大的文本文件数据集,总共约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())