Spec-Zone.ru › TensorFlow

tf.train.SequenceExample

Объект SequenceExample представляет собой последовательность признаков и некоторый контекст.

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

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

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

tf.compat.v1.train.SequenceExample

Его можно рассматривать как прототипную реализацию следующего типа Python:

Feature = Union[List[bytes],
                List[int64],
                List[float]]

class SequenceExample(typing.NamedTuple):
  context: Dict[str, Feature]
  feature_lists: Dict[str, List[Feature]]

Для реализации в виде протобуфов он разбивается на следующие подсообщения:

# tf.train.Feature
Feature = Union[List[bytes],
                List[int64],
                List[float]]

# tf.train.FeatureList
FeatureList = List[Feature]

# tf.train.FeatureLists
FeatureLists = Dict[str, FeatureList]

# tf.train.SequenceExample
class SequenceExample(typing.NamedTuple):
  context: Dict[str, Feature]
  feature_lists: FeatureLists

Чтобы выполнить разбор SequenceExample в TensorFlow, обратитесь к функции tf.io.parse_sequence_example.

context содержит признаки, применимые ко всему примеру. feature_lists содержат карту «ключ — значение», где каждому ключу соответствует повторяющийся набор tf.train.Features (tf.train.FeatureList). FeatureList представляет значения признака, определяемого ключом, во времени или в кадрах.

Ниже приведен SequenceExample для приложения рекомендаций фильмов, в котором записана последовательность оценок пользователя. Признаки, не зависящие от времени («locale», «age», «favorites»), описывающие пользователя, входят в контекст. Последовательность фильмов, которым пользователь поставил оценки, входит в feature_lists. Для каждого фильма в последовательности указаны его название и актеры, а также оценка пользователя. Эти сведения записаны в трех отдельных feature_list. В примере ниже всего два фильма. У всех трех feature_list — «movie_ratings», «movie_names» и «actors» — есть значение признака для обоих фильмов. Обратите внимание: «actors» сам по себе является bytes_list с несколькими строками для каждого фильма.

context: {
  feature: {
    key  : "locale"
    value: {
      bytes_list: {
        value: [ "pt_BR" ]
      }
    }
  }
  feature: {
    key  : "age"
    value: {
      float_list: {
        value: [ 19.0 ]
      }
    }
  }
  feature: {
    key  : "favorites"
    value: {
      bytes_list: {
        value: [ "Majesty Rose", "Savannah Outen", "One Direction" ]
      }
    }
  }
}
feature_lists: {
  feature_list: {
    key  : "movie_ratings"
    value: {
      feature: {
        float_list: {
          value: [ 4.5 ]
        }
      }
      feature: {
        float_list: {
          value: [ 5.0 ]
        }
      }
    }
  }
  feature_list: {
    key  : "movie_names"
    value: {
      feature: {
        bytes_list: {
          value: [ "The Shawshank Redemption" ]
        }
      }
      feature: {
        bytes_list: {
          value: [ "Fight Club" ]
        }
      }
    }
  }
  feature_list: {
    key  : "actors"
    value: {
      feature: {
        bytes_list: {
          value: [ "Tim Robbins", "Morgan Freeman" ]
        }
      }
      feature: {
        bytes_list: {
          value: [ "Brad Pitt", "Edward Norton", "Helena Bonham Carter" ]
        }
      }
    }
  }
}

Соответствующий требованиям набор данных SequenceExample должен отвечать следующим соглашениям:

context:

  • Все соответствующие требованиям признаки контекста K должны отвечать тем же соглашениям, что и признаки соответствующего требованиям Example (см. выше).

feature_lists:

  • FeatureList L может отсутствовать в примере; конфигурация парсера определяет, допустимо ли это или следует считать его пустым списком (нулевой длины).
  • Если FeatureList L существует, он может быть пустым (нулевой длины).
  • Если FeatureList L не пуст, все признаки внутри FeatureList должны иметь один и тот же тип данных T. Даже в разных SequenceExample тип T объекта FeatureList, определяемого одним и тем же ключом, должен совпадать. Запись без значений может служить пустым признаком.
  • Если FeatureList L не пуст, конфигурация парсера определяет, должны ли все признаки внутри FeatureList иметь одинаковый размер. То же правило действует для этого FeatureList в нескольких примерах.
  • При моделировании последовательностей (пример) списки признаков представляют последовательность кадров. В этом случае все FeatureList в SequenceExample содержат одинаковое количество сообщений Feature, поэтому i-й элемент в каждом FeatureList относится к i-му кадру (или временному шагу).

Примеры соответствующих и не соответствующих требованиям FeatureLists:

Соответствующий требованиям FeatureLists:

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { float_list: { value: [ 5.0 ] } } }
} }

Не соответствующий требованиям FeatureLists (несовпадающие типы):

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { int64_list: { value: [ 5 ] } } }
} }

Условно соответствующий требованиям FeatureLists: конфигурация парсера определяет, должны ли совпадать размеры признаков:

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { float_list: { value: [ 5.0, 6.0 ] } } }
} }

Примеры соответствующих и не соответствующих требованиям SequenceExample:

Соответствующая требованиям пара SequenceExample:

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { float_list: { value: [ 5.0 ] } } }
 } }

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { float_list: { value: [ 5.0 ] } }
           feature: { float_list: { value: [ 2.0 ] } } }
 } }

Соответствующая требованиям пара SequenceExample:

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { float_list: { value: [ 5.0 ] } } }
 } }

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { }
 } }

Условно соответствующая требованиям пара SequenceExample: конфигурация парсера определяет, является ли второй feature_lists согласованным (нулевой длины) или недопустимым (отсутствует «movie_ratings»):

 feature_lists: { feature_list: {
   key: "movie_ratings"
   value: { feature: { float_list: { value: [ 4.5 ] } }
            feature: { float_list: { value: [ 5.0 ] } } }
  } }

feature_lists: { }

Не соответствующая требованиям пара SequenceExample (несовпадающие типы):

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { float_list: { value: [ 5.0 ] } } }
 } }

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { int64_list: { value: [ 4 ] } }
           feature: { int64_list: { value: [ 5 ] } }
           feature: { int64_list: { value: [ 2 ] } } }
 } }

Условно соответствующая требованиям пара SequenceExample; конфигурация парсера определяет, должны ли совпадать размеры признаков:

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.5 ] } }
           feature: { float_list: { value: [ 5.0 ] } } }
} }

feature_lists: { feature_list: {
  key: "movie_ratings"
  value: { feature: { float_list: { value: [ 4.0 ] } }
          feature: { float_list: { value: [ 5.0, 3.0 ] } }
} }
Атрибуты
context Features context
feature_lists FeatureLists feature_lists

© 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/train/SequenceExample

Spec-Zone.ru

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