Spec-Zone.ru › TensorFlow

tf.data.experimental.service.from_dataset_id

Создаёт набор данных, который считывает данные из сервиса tf.data.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.data.experimental.service.from_dataset_id

tf.data.experimental.service.from_dataset_id(
    processing_mode,
    service,
    dataset_id,
    element_spec=None,
    job_name=None,
    consumer_index=None,
    num_consumers=None,
    max_outstanding_requests=None,
    data_transfer_protocol=None,
    cross_trainer_cache=None,
    target_workers='AUTO'
) -> tf.data.Dataset

Это полезно, когда набор данных регистрируется одним процессом, а затем используется другим процессом. Когда один и тот же процесс одновременно регистрирует и считывает данные из набора данных, проще использовать tf.data.experimental.service.distribute вместо этого.

Перед использованием from_dataset_id, набор данных должен быть зарегистрирован в службе tf.data с помощью tf.data.experimental.service.register_dataset. register_dataset возвращает идентификатор зарегистрированного набора данных. Это тот dataset_id, который следует передать в from_dataset_id.

Аргумент element_spec указывает tf.TypeSpec элементов, генерируемых набором данных. В настоящее время element_spec необходимо явно указать и он должен соответствовать набору данных, зарегистрированному в dataset_id. element_spec по умолчанию равен None, чтобы в будущем мы могли поддерживать автоматическое обнаружение element_spec путём запроса к службе tf.data.

tf.data.experimental.service.distribute — это удобный метод, который объединяет register_dataset и from_dataset_id в преобразование набора данных. Смотрите документацию для tf.data.experimental.service.distribute для получения более подробной информации о том, как работает from_dataset_id.

dispatcher = tf.data.experimental.service.DispatchServer()
dispatcher_address = dispatcher.target.split("://")[1]
worker = tf.data.experimental.service.WorkerServer(
    tf.data.experimental.service.WorkerConfig(
        dispatcher_address=dispatcher_address))
dataset = tf.data.Dataset.range(10)
dataset_id = tf.data.experimental.service.register_dataset(
    dispatcher.target, dataset)
dataset = tf.data.experimental.service.from_dataset_id(
    processing_mode="parallel_epochs",
    service=dispatcher.target,
    dataset_id=dataset_id,
    element_spec=dataset.element_spec)
print(list(dataset.as_numpy_iterator()))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Аргументы
processing_mode tf.data.experimental.service.ShardingPolicy, определяющий, как разбить набор данных между рабочими процессами tf.data. Смотрите tf.data.experimental.service.ShardingPolicy для получения подробностей. Для обратной совместимости processing_mode также может быть установлен на строки "parallel_epochs" или "distributed_epoch", которые соответственно эквивалентны ShardingPolicy.OFF и ShardingPolicy.DYNAMIC.
service Строка или кортеж, указывающие, как подключиться к службе tf.data. Если это строка, она должна быть в формате [<protocol>://]<address>, где <address> определяет адрес диспетчера, а <protocol> необязательно используется для переопределения протокола по умолчанию. Если это кортеж, он должен быть (протокол, адрес).
dataset_id Идентификатор набора данных для чтения. Этот идентификатор возвращается register_dataset, когда набор данных регистрируется в службе tf.data.
element_spec Вложенная структура tf.TypeSpec, представляющая тип элементов, генерируемых набором данных. Этот аргумент необходим только внутри tf.function. Используйте tf.data.Dataset.element_spec для получения спецификации элемента для данного набора данных.
job_name (Необязательно.) Имя задачи. Если указано, должно быть непустой строкой. Этот аргумент позволяет нескольким наборам данных использовать одну и ту же задачу. По умолчанию набор данных создаёт анонимные, эксклюзивно используемые задачи.
consumer_index (Необязательно.) Индекс потребителя в диапазоне от 0 до num_consumers. Должен быть указан вместе с num_consumers. При указании потребители будут читать из задачи в строгой круговой очереди, вместо по умолчанию — в порядке очереди.
num_consumers (Необязательно.) Количество потребителей, которые будут потреблять из задачи. Должен быть указан вместе с consumer_index. При указании потребители будут читать из задачи в строгой круговой очереди, вместо по умолчанию — в порядке очереди. Когда num_consumers указан, набор данных должен иметь бесконечную мощность, чтобы предотвратить раннее исчерпание данных у производителя и разсинхронизацию потребителей.
max_outstanding_requests (Необязательно.) Ограничение на количество элементов, которые могут быть запрошены одновременно. Вы можете использовать этот параметр для управления объёмом используемой памяти, так как distribute не будет использовать больше, чем element_size * max_outstanding_requests памяти.
data_transfer_protocol (Необязательно.) Протокол для передачи данных со службой tf.data. По умолчанию данные передаются с помощью gRPC.
cross_trainer_cache (Необязательно.) Если указан объект CrossTrainerCache, итерация набора данных будет совместно использоваться между одновременно работающими трейнерами. Подробнее см. https://www.tensorflow.org/api_docs/python/tf/data/experimental/service#sharing_tfdata_service_with_concurrent_trainers.
target_workers (Необязательно.) От каких рабочих процессов читать. Если "AUTO", среда выполнения tf.data определяет, с каких рабочих процессов читать. Если "ANY", считывает с любых рабочих процессов службы tf.data. Если "LOCAL", считывает только с локальных рабочих процессов службы tf.data в процессе. "AUTO" хорошо подходит для большинства случаев, но пользователи могут указать другие цели. Например, "LOCAL" помогает избежать RPC и копирования данных, если каждый рабочий TF находится вместе с рабочим процессом службы tf.data. Потребители общей задачи должны использовать тот же target_workers. По умолчанию "AUTO".
Возвращаемое значение
tf.data.Dataset, который считывает данные из сервиса tf.data.

© 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/from_dataset_id

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API