Spec-Zone.ru › TensorFlow 1.15

tf.contrib.data.sloppy_interleave

Недетерминированная версия преобразования Dataset.interleave(). (устарело)

tf.contrib.data.sloppy_interleave(
    map_func, cycle_length, block_length=1
)
Предупреждение: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: используйте tf.contrib.data.parallel_interleave(..., sloppy=True).

sloppy_interleave() отображает map_func через dataset, и недетерминированно вставляет результаты.

Получаемый набор данных почти идентичен interleave. Ключевое различие заключается в том, что если получение значения из заданного итератора вывода приведет к блокировке get_next, этот итератор будет пропущен, и использован, когда станет доступным. Если потребление со всех итераторов приведет к блокировке вызова get_next, вызов get_next будет заблокирован до тех пор, пока первое значение не станет доступным.

Если базовые наборы данных производят элементы так же быстро, как они потребляются, преобразование sloppy_interleave ведет себя так же, как interleave. Однако, если базовый набор данных заблокирует потребителя, sloppy_interleave может нарушить порядок круговой очереди (которому interleave строго следует), произведя элемент из другого базового набора данных вместо этого.

Пример использования:

# Preprocess 4 files concurrently.
filenames = tf.data.Dataset.list_files("/path/to/data/train*.tfrecords")
dataset = filenames.apply(
    tf.contrib.data.sloppy_interleave(
        lambda filename: tf.data.TFRecordDataset(filename),
        cycle_length=4))
Предупреждение: Порядок элементов в результирующем наборе данных не детерминирован. Используйте Dataset.interleave(), если вы хотите, чтобы элементы имели детерминированный порядок.
Аргументы
map_func Функция, отображающая вложенную структуру тензоров (с формами и типами, определенными self.output_shapes и self.output_types) в Dataset.
cycle_length Количество входных Dataset для вставки параллельно.
block_length Количество последовательных элементов, которые нужно извлечь из входного Dataset перед переходом к следующему входному Dataset. Примечание: sloppy_interleave пропустит оставшиеся элементы в block_length для предотвращения блокировки.
Возвращаемое значение
Функция преобразования Dataset, которую можно передать в tf.data.Dataset.apply.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/data/sloppy_interleave

Spec-Zone.ru

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