tf.train.shuffle_batch
Создаёт пакеты, случайным образом перемешивая тензоры. (устарело)
tf.train.shuffle_batch(
tensors, batch_size, capacity, min_after_dequeue, num_threads=1, seed=None,
enqueue_many=False, shapes=None, allow_smaller_final_batch=False,
shared_name=None, name=None
)
Эта функция добавляет следующее к текущему Graph:
- Очередь перемешивания, в которую тензоры из
tensorsдобавляются в очередь. - Операцию
dequeue_manyдля создания пакетов из очереди. - Операцию
QueueRunnerв коллекциюQUEUE_RUNNER, для добавления тензоров изtensorsв очередь.
Если enqueue_many равно False, предполагается, что tensors представляет собой один пример. Входной тензор с формой [x, y, z] будет выводиться как тензор с формой [batch_size, x, y, z].
Если enqueue_many равно True, предполагается, что tensors представляет собой пакет примеров, где первый размер индексируется по примеру, и все члены tensors должны иметь одинаковый размер в первом измерении. Если входной тензор имеет форму [*, x, y, z], вывод будет иметь форму [batch_size, x, y, z].
Аргумент capacity управляет тем, как долго префеч может расширять очереди.
Возвращаемая операция — это операция декьюинга, и она вызовет tf.errors.OutOfRangeError, если входная очередь исчерпана. Если эта операция подключается к другой очереди ввода, её поток исполнителя перехватит это исключение. Однако, если эта операция используется в вашем основном потоке, вы сами должны перехватывать это исключение.
Например:
# Creates batches of 32 images and 32 labels.
image_batch, label_batch = tf.compat.v1.train.shuffle_batch(
[single_image, single_label],
batch_size=32,
num_threads=4,
capacity=50000,
min_after_dequeue=10000)
Примечание: Вы должны убедиться, что либо (i) передан аргументshapes, либо (ii) все тензоры вtensorsдолжны иметь полностью определённые формы.ValueErrorбудет вызвано, если ни одно из этих условий не выполнено.
Если allow_smaller_final_batch равно True, значение меньшего пакета, чем batch_size возвращается, когда очередь закрыта, и нет достаточного количества элементов для заполнения пакета, в противном случае ожидающие элементы отбрасываются. Кроме того, все статические формы выходных тензоров, доступные через свойство shape, будут иметь первое значение Dimension равное None, и операции, зависящие от фиксированного значения batch_size, потерпят неудачу.
| Аргументы | |
|---|---|
tensors | Список или словарь тензоров для добавления в очередь. |
batch_size | Новое значение размера пакета, взятое из очереди. |
capacity | Целое число. Максимальное количество элементов в очереди. |
min_after_dequeue | Минимальное количество элементов в очереди после декьюинга, используется для обеспечения уровня смешивания элементов. |
num_threads | Количество потоков, добавляющих tensor_list в очередь. |
seed | Зерно для случайного перемешивания в очереди. |
enqueue_many | Является ли каждый тензор в tensor_list отдельным примером. |
shapes | (Необязательно) Формы каждого примера. По умолчанию принимает значения, определённые для tensor_list. |
allow_smaller_final_batch | (Необязательно) Булево значение. Если True, разрешить уменьшение размера последнего пакета, если в очереди недостаточно элементов. |
shared_name | (Необязательно) Если задано, эта очередь будет совместно использоваться под данным именем в нескольких сессиях. |
name | (Необязательно) Имя для операций. |
| Возвращаемое значение | |
|---|---|
Список или словарь тензоров с типами, как у tensors. |
| Исключения | |
|---|---|
ValueError | Если shapes не указаны и не могут быть определены из элементов tensors |
Совместимость с Eager
Потоки ввода данных, основанные на очередях, не поддерживаются при включённом режиме eager execution. Пожалуйста, используйте API tf.data для загрузки данных в режиме eager execution.
© 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/train/shuffle_batch