tf.data.experimental.service.ShardingPolicy
Определяет, как фрагментировать данные среди рабочих процессов службы tf.data.
OFF: Фрагментация не будет выполнена. Каждый рабочий процесс производит весь набор данных без фрагментации. В этом режиме рекомендуется перемешивать набор данных не детерминированным образом, чтобы рабочие процессы обрабатывали набор данных в разном порядке. Если рабочие процессы перезапущены или присоединяются к кластеру во время выполнения задачи, они начнут обработку набора данных с самого начала.
DYNAMIC: Набор входных данных динамически разбивается между рабочими процессами во время выполнения. Каждый рабочий процесс получает следующий фрагмент при чтении данных из диспетчера. Данные генерируются не детерминированно в этом режиме. Динамическая фрагментация хорошо работает с кластерами службы tf.data различного размера, например, когда требуется автоматическое масштабирование рабочих процессов. Динамическая фрагментация обеспечивает гарантию посещения не более одного раза. Примеры не будут повторяться, но некоторые могут быть пропущены, если рабочий процесс службы tf.data перезапускается во время обработки файла.
Ниже приведены статические политики фрагментации. Семантика аналогична tf.data.experimental.AutoShardPolicy. Для этих политик требуется:
- Кластер службы tf.data настроен со списком фиксированных рабочих процессов в DispatcherConfig.
- Каждый клиент читает только из локального рабочего процесса службы tf.data.
Если рабочий процесс перезапускается во время выполнения статической фрагментации, рабочий процесс начнет обработку своего фрагмента снова с самого начала.
FILE: Фрагментация по входным файлам (т.е. каждый рабочий процесс получит фиксированный набор файлов для обработки). При выборе этого параметра убедитесь, что файлов не меньше, чем рабочих процессов. Если файлов меньше, чем рабочих процессов, будет выдано исключение во время выполнения.
DATA: Фрагментация по элементам, производимым набором данных. Каждый рабочий процесс обработает весь набор данных и отбросит часть, которая не предназначена для него. Обратите внимание, что для правильного разбиения элементов набора данных набор данных должен производить элементы в детерминированном порядке.
FILE_OR_DATA: Попытка фрагментации на основе файлов, при ошибке переключается на фрагментацию на основе данных.
HINT: Ищет наличие shard(SHARD_HINT, ...), которое рассматривается как заполнитель для замены на shard(num_workers, worker_index).
| Переменные класса | |
|---|---|
| DATA | <ShardingPolicy.DATA: 3> |
| DYNAMIC | <ShardingPolicy.DYNAMIC: 1> |
| FILE | <ShardingPolicy.FILE: 2> |
| FILE_OR_DATA | <ShardingPolicy.FILE_OR_DATA: 4> |
| HINT | <ShardingPolicy.HINT: 5> |
| OFF | <ShardingPolicy.OFF: 0> |
© 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/service/ShardingPolicy