gpt4 book ai didi

python - tf.data.Dataset.padded_batch 以不同方式填充每个特征

转载 作者:太空狗 更新时间:2023-10-29 22:20:49 25 4
gpt4 key购买 nike

我有一个包含 3 个不同特征的 tf.data.Dataset 实例

  • label 这是一个标量
  • sequence_feature 这是一个标量序列
  • seq_of_seqs_feature 这是序列特征的序列

我正在尝试使用 tf.data.Dataset.padded_batch() 生成填充数据作为我模型的输入 - 我想以不同方式填充每个特征。

示例批处理:

[{'label': 24,
'sequence_feature': [1, 2],
'seq_of_seqs_feature': [[11.1, 22.2],
[33.3, 44.4]]},
{'label': 32,
'sequence_feature': [3, 4, 5],
'seq_of_seqs_feature': [[55.55, 66.66]]}]

预期输出:

[{'label': 24,
'sequence_feature': [1, 2, 0],
'seq_of_seqs_feature': [[11.1, 22.2],
[33.3, 44.4]]},
{'label': 32,
'sequence_feature': [3, 4, 5],
'seq_of_seqs_feature': [[55.55, 66.66],
0.0, 0.0 ]}]

如您所见,label 特征不应该被填充,而 sequence_featureseq_of_seqs_feature 应该被相应的最长条目填充给定的批处理。

最佳答案

tf.data.Dataset.padded_batch() 方法允许您为生成的批处理的每个组件(特征)指定 padded_shapes。例如,如果您的输入数据集名为 ds:

padded_ds = ds.padded_batch(
BATCH_SIZE,
padded_shapes={
'label': [], # Scalar elements, no padding.
'sequence_feature': [None], # Vector elements, padded to longest.
'seq_of_seqs_feature': [None, None], # Matrix elements, padded to longest
}) # in each dimension.

请注意,padded_shapes 参数与输入数据集的元素具有相同的结构,因此在这种情况下,它采用一个字典,其中的键与您的特征名称相匹配。

关于python - tf.data.Dataset.padded_batch 以不同方式填充每个特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49840100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com