Spec-Zone.ru › TensorFlow

tf.data.experimental.dense_to_ragged_batch

Преобразование, которое объединяет разрозненные элементы в tf.RaggedTensor. (устаревшее)

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

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

Дополнительные сведения см. в руководстве по миграции.

tf.compat.v1.data.experimental.dense_to_ragged_batch

tf.data.experimental.dense_to_ragged_batch(
    batch_size,
    drop_remainder=False,
    row_splits_dtype=tf.dtypes.int64
)

Используется в блокнотах

Используется в руководстве Используется в учебных пособиях
  • Разрозненные тензоры
  • Рекомендация фильмов для пользователей с помощью TensorFlow Ranking
Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущих версиях. Инструкции по обновлению: Используйте tf.data.Dataset.ragged_batch вместо этого.

Это преобразование объединяет несколько последовательных элементов входного набора данных в один элемент.

Как и tf.data.Dataset.batch, компоненты результирующего элемента будут иметь дополнительное внешнее измерение, которое будет batch_size (или N % batch_size для последнего элемента, если batch_size не делит количество входных элементов N равномерно и drop_remainder равно False). Если ваша программа зависит от того, чтобы у партий было одинаковое внешнее измерение, вы должны установить аргумент drop_remainder на значение True, чтобы предотвратить создание более малой партии.

В отличие от tf.data.Dataset.batch, входные элементы для объединения могут иметь разные формы:

  • Если входной элемент является tf.Tensor, у которого статическая tf.TensorShape полностью определена, он объединяется в обычном режиме.
  • Если входной элемент является tf.Tensor, у которого статическая tf.TensorShape содержит одну или несколько осей с неизвестной длиной (т. е. shape[i]=None), то выходной результат будет содержать tf.RaggedTensor, который является разрозненным до любого из таких измерений.
  • Если входной элемент является tf.RaggedTensor или любого другого типа, он объединяется в обычном режиме.

Пример:

dataset = tf.data.Dataset.from_tensor_slices(np.arange(6))
dataset = dataset.map(lambda x: tf.range(x))
dataset.element_spec.shape
TensorShape([None])
dataset = dataset.apply(
    tf.data.experimental.dense_to_ragged_batch(batch_size=2))
for batch in dataset:
  print(batch)
<tf.RaggedTensor [[], [0]]>
<tf.RaggedTensor [[0, 1], [0, 1, 2]]>
<tf.RaggedTensor [[0, 1, 2, 3], [0, 1, 2, 3, 4]]>
Аргументы
batch_size Скалярный tf.int64 tf.Tensor, представляющий количество последовательных элементов этого набора данных, которые нужно объединить в одну партию.
drop_remainder (Необязательно.) Скалярный tf.bool tf.Tensor, представляющий, следует ли отбросить последнюю партию в случае, если она содержит меньше элементов, чем batch_size; по умолчанию меньшая партия не отбрасывается.
row_splits_dtype Тип данных, который следует использовать для row_splits любых новых разрозненных тензоров. Существующие элементы tf.RaggedTensor не изменяют свой тип данных row_splits.
Возвращаемое значение
Dataset Dataset.

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

Spec-Zone.ru

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