tf.data.experimental.pad_to_cardinality
Дополняет набор данных фиктивными элементами до нужного размера.
tf.data.experimental.pad_to_cardinality(
cardinality, mask_key='valid'
)
Набор данных, который нужно дополнить, должен иметь известный и конечный размер и содержать элементы-словари. Для различения реальных элементов и элементов-заполнителей будет добавлен ключ mask_key: у реальных элементов будет запись <mask_key>=True, а у элементов-заполнителей — запись <mask_key>=False.
Пример использования:
ds = tf.data.Dataset.from_tensor_slices({'a': [1, 2]})
ds = ds.apply(tf.data.experimental.pad_to_cardinality(3))
list(ds.as_numpy_iterator())
[{'a': 1, 'valid': True}, {'a': 2, 'valid': True}, {'a': 0, 'valid': False}]Это может быть полезно, например, во время оценки, когда нежелательны неполные пакеты, но при этом важно не отбрасывать данные.
ds = ... # Round up to the next full batch. target_cardinality = -(-ds.cardinality() // batch_size) * batch_size ds = ds.apply(tf.data.experimental.pad_to_cardinality(target_cardinality)) # Set `drop_remainder` so that batch shape will be known statically. No data # will actually be dropped since the batch size divides the cardinality. ds = ds.batch(batch_size, drop_remainder=True)
| Аргументы | |
|---|---|
cardinality | Размер, до которого нужно дополнить набор данных. |
mask_key | Ключ для определения реальных элементов и элементов-заполнителей. |
| Возвращает | |
|---|---|
Преобразование набора данных, которое можно применить с помощью Dataset.apply(). |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/data/experimental/pad_to_cardinality