Spec-Zone.ru › TensorFlow

tf.experimental.ExtensionTypeBatchEncoder

Класс для кодирования и декодирования значений типов расширений при пакетировании.

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

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

Подробнее см. в руководстве по миграции.

tf.compat.v1.experimental.ExtensionTypeBatchEncoder

Чтобы API, такие как tf.data.Dataset, tf.keras и tf.map_fn, могли пакетировать и распаковывать значения типов расширений, эти значения необходимо кодировать в виде списка tf.Tensor. При этом пакетирование, распаковывание или объединение этих закодированных тензоров, а затем декодирование результата должны быть эквивалентны пакетированию, распаковыванию или объединению исходных значений. За реализацию такого кодирования отвечают ExtensionTypeBatchEncoder.

Кодировщик по умолчанию ExtensionTypeBatchEncoder, используемый в BatchableExtensionType, предполагает, что значения типов расширений можно пакетировать, распаковывать или объединять, просто пакетируя, распаковывая или объединяя каждое вложенное поле Tensor, ExtensionType, CompositeTensor и TensorShape.

Для типов расширений, для которых это условие не выполняется, потребуется переопределить __batch_encoder__, предоставив пользовательский кодировщик, переопределяющий методы batch, unbatch, encode и decode. Например:

class CustomBatchEncoder(ExtensionTypeBatchEncoder):
  pass # Override batch(), unbatch(), encode(), and decode().
class CustomType(BatchableExtensionType):
  x: tf.Tensor
  y: tf.Tensor
  shape: tf.TensorShape
  __batch_encoder__ = CustomBatchEncoder()

Например, tf.RaggedTensor и tf.SparseTensor используют пользовательское кодирование пакетов, в котором определены операции для «упаковки» и «распаковки» отдельных значений в тензоры tf.variant.

Методы

batch

Просмотреть исходный код

batch(
    spec, batch_size
)

Возвращает TypeSpec, представляющий пакет значений, описанных с помощью spec.

По умолчанию возвращается TypeSpec, равный spec, за исключением того, что к каждому вложенному полю TypeSpec и TensorShape добавляется внешняя ось размера batch_size. При необходимости подклассы могут переопределить это определение по умолчанию.

Аргументы
spec TypeSpec для отдельного значения.
batch_size int, указывающий количество объединяемых в пакет значений, или None, если размер пакета неизвестен.
Возвращает
TypeSpec для пакета значений.

decode

Просмотреть исходный код

decode(
    spec, encoded_value
)

Декодирует value из пакетируемого тензорного представления.

Описание кодирования по умолчанию см. в encode. При необходимости подклассы могут переопределить это определение по умолчанию.

Аргументы
spec TypeSpec результирующего значения. Если закодированные значения со спецификацией s были объединены в пакет, то spec должно быть s.batch(batch_size); если же закодированные значения со спецификацией s были распакованы, то spec должно быть s.unbatch().
encoded_value Вложенная структура значений, возвращённая encode; либо вложенная структура значений, полученная пакетированием, распаковыванием или объединением соответствующих элементов значений, возвращённых encode.
Возвращает
Значение, совместимое с type_spec.

encode

Просмотреть исходный код

encode(
    spec, value, minimum_rank=0
)

Кодирует value как вложенную структуру пакетируемых тензоров или CompositeTensors.

По умолчанию возвращается плоский кортеж из всех Tensor, CompositeTensor и ExtensionType, полученных при обходе полей value в глубину. При необходимости подклассы могут переопределить это определение по умолчанию.

Аргументы
spec TypeSpec значения, которое нужно закодировать.
value Значение, совместимое с spec.
minimum_rank Минимальный ранг возвращаемых тензоров, CompositeTensors и значений ExtensionType. Это позволяет гарантировать, что закодированные значения можно распаковать указанное число раз. Если minimum_rank>0, то t.shape[:minimum_rank] должен быть совместим для всех значений t, возвращённых encode.
Возвращает
Вложенную структуру (в определении tf.nest) из tf.Tensor, пакетируемых tf.CompositeTensor или tf.ExtensionType. Пакетирование, распаковывание или объединение этих закодированных значений, а затем декодирование результата должны быть эквивалентны пакетированию, распаковыванию или объединению исходных значений.

encoding_specs

Просмотреть исходный код

encoding_specs(
    spec
)

Возвращает список TensorSpec(ов), описывающих кодирование для spec.

Описание кодирования по умолчанию см. в encode. При необходимости подклассы могут переопределить это определение по умолчанию.

Аргументы
spec TypeSpec, кодирование которого нужно описать.
Возвращает
Вложенную структуру (в определении tf.nest) oftf.TypeSpec, describing the values that are returned byself.encode(spec, ...)`). Все TypeSpec в этой структуре должны поддерживать пакетирование.

unbatch

Просмотреть исходный код

unbatch(
    spec
)

Возвращает TypeSpec для одного элемента без пакета в spec.

По умолчанию возвращается TypeSpec, равный spec, за исключением того, что крайняя внешняя ось удаляется из каждого вложенного поля TypeSpec и TensorShape. При необходимости подклассы могут переопределить это определение по умолчанию.

Аргументы
spec TypeSpec для пакета значений.
Возвращает
TypeSpec для отдельного значения.

© 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/experimental/ExtensionTypeBatchEncoder

Spec-Zone.ru

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