(train_data, test_data), info = tfds.load(
‘imdb_reviews/subwords8k’,
split = (tfds.Split.TRAIN, tfds.Split.TEST),
with_info=True, as_supervised=True)
train_batches = train_data.shuffle(1000).padded_batch(10)
test_batches = test_data.shuffle(1000).padded_batch(10)
train_batch, train_labels = next(iter(train_batches))
长度不等的padden_batch()填充处理详细说明
读取文本中句子长短不一的处理方法,可以用固定长度截断,也可以用动态填充:
TensorFlow中的
padded_batch(batch_size,
padded_shapes,
padding_values=None
)
动态的方法方法非常适合处理TensorFlow中dataset格式的长短不一的数据!!!
解释:因为每个句子通常是独立的数据来训练,长短是不一样的,因此把这些句子放在一个Batch中适合,需要把短的句子补齐到batch中最长句子的长度,既可以保留句子的含义不会变化又可以充分训练每个词。
dataset.padden_batch()这一步读取了batch_size个数的句子,同时每个元素的维度由padded_shape决定不会变化。
padded_shapes不设置或者设置为-1