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