Spec-Zone.ru › TensorFlow

tf.data.experimental.get_single_element

Возвращает единственный элемент dataset в виде вложенной структуры тензоров. (устарело)

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

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

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

tf.compat.v1.data.experimental.get_single_element

tf.data.experimental.get_single_element(
    dataset
)
Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: Используйте tf.data.Dataset.get_single_element().

Функция позволяет использовать tf.data.Dataset в бессостоятельном выражении «тензор-в-тензор-выход», без создания итератора. Это упрощает преобразование данных над тензорами, используя оптимизированную абстракцию tf.data.Dataset поверх них.

Например, рассмотрим preprocessing_fn, который принимает на вход исходные признаки и возвращает обработанные признаки вместе с меткой.

def preprocessing_fn(raw_feature):
  # ... the raw_feature is preprocessed as per the use-case
  return feature

raw_features = ...  # input batch of BATCH_SIZE elements.
dataset = (tf.data.Dataset.from_tensor_slices(raw_features)
           .map(preprocessing_fn, num_parallel_calls=BATCH_SIZE)
           .batch(BATCH_SIZE))

processed_features = tf.data.experimental.get_single_element(dataset)

В приведенном примере тензор raw_features длиной BATCH_SIZE был преобразован в tf.data.Dataset. Затем каждый из raw_feature был преобразован с помощью preprocessing_fn, и обработанные признаки были сгруппированы в одну партию. Конечный dataset содержит только один элемент — пакет всех обработанных признаков.

Примечание: dataset должен содержать только один элемент.

Теперь, вместо создания итератора для dataset и извлечения пакета признаков, используется функция tf.data.experimental.get_single_element(), чтобы пропустить процесс создания итератора и напрямую вывести пакет признаков.

Это особенно полезно, когда ваши преобразования тензоров выражены как операции tf.data.Dataset, и вы хотите использовать эти преобразования при обслуживании вашей модели.

Keras

model = ... # A pre-built or custom model

class PreprocessingModel(tf.keras.Model):
  def __init__(self, model):
    super().__init__(self)
    self.model = model

  @tf.function(input_signature=[...])
  def serving_fn(self, data):
    ds = tf.data.Dataset.from_tensor_slices(data)
    ds = ds.map(preprocessing_fn, num_parallel_calls=BATCH_SIZE)
    ds = ds.batch(batch_size=BATCH_SIZE)
    return tf.argmax(
      self.model(tf.data.experimental.get_single_element(ds)),
      axis=-1
    )

preprocessing_model = PreprocessingModel(model)
your_exported_model_dir = ... # save the model to this path.
tf.saved_model.save(preprocessing_model, your_exported_model_dir,
              signatures={'serving_default': preprocessing_model.serving_fn})
Аргументы
dataset Объект tf.data.Dataset, содержащий один элемент.
Возвращаемое значение
Вложенная структура объектов tf.Tensor, соответствующих единственному элементу dataset.
Исключения
TypeError если dataset не является объектом tf.data.Dataset.
InvalidArgumentError (во время выполнения) если 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/get_single_element

Spec-Zone.ru

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