tf.data.experimental.service.ShardingPolicy
Определяет способ разделения данных между рабочими процессами tf.data service.
OFF: разделение не выполняется. Каждый рабочий процесс создает полный набор данных без разделения. В этом режиме рекомендуется перемешивать набор данных недетерминированным образом, чтобы рабочие процессы обрабатывали его в разном порядке. Если рабочие процессы перезапускаются или присоединяются к кластеру в середине задания, они начинают обработку набора данных с самого начала.
DYNAMIC: входной набор данных динамически разделяется между рабочими процессами во время выполнения. Каждый рабочий процесс получает следующий фрагмент при чтении данных из диспетчера. В этом режиме данные создаются недетерминированным образом. Динамическое разделение хорошо подходит для кластеров tf.data service переменного размера, например, когда требуется автоматически масштабировать рабочие процессы. Динамическое разделение гарантирует обработку не более одного раза. Примеры не будут повторяться, но некоторые из них могут быть пропущены, если рабочий процесс tf.data service перезапустится во время обработки файла.
Ниже перечислены политики статического разделения. Их семантика аналогична семантике tf.data.experimental.AutoShardPolicy. Для этих политик необходимо:
- Настроить кластер tf.data service с фиксированным списком рабочих процессов в DispatcherConfig.
- Каждому клиенту считывать данные только с локального рабочего процесса tf.data service.
Если рабочий процесс перезапускается при статическом разделении, он начинает обработку своего фрагмента заново, с самого начала.
FILE: разделение по входным файлам (то есть каждому рабочему процессу назначается фиксированный набор файлов для обработки). При выборе этого параметра убедитесь, что файлов не меньше, чем рабочих процессов. Если входных файлов меньше, чем рабочих процессов, возникнет ошибка времени выполнения.
DATA: разделение по элементам, создаваемым набором данных. Каждый рабочий процесс обрабатывает весь набор данных и отбрасывает ту его часть, которая ему не предназначена. Чтобы элементы набора данных корректно распределялись в этом режиме, набор данных должен выдавать элементы в детерминированном порядке.
FILE_OR_DATA: предпринимается попытка разделить данные на основе FILE; если она завершается неудачей, выполняется разделение на основе 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