Spec-Zone.ru › TensorFlow 2.9

tf.train.SequenceExample

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

Формат 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 для приложения по рекомендации фильмов, регистрирующего последовательность оценок пользователя. Временные атрибуты ("регион", "возраст", "избранное"), описывающие пользователя, являются частью контекста. Последовательность просмотренных пользователем фильмов является частью 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 должны подчиняться тем же соглашениям, что и атрибуты соответствующего примера (см. выше).

feature_lists:

  • FeatureList L может отсутствовать в примере; за парсером остается определение, разрешается это или считается пустым списком (нулевой длины).
  • Если FeatureList L существует, он может быть пустым (нулевой длины).
  • Если FeatureList L не пустой, все атрибуты в FeatureList должны иметь один и тот же тип данных T. Даже в различных SequenceExample тип T атрибута, определенного одним и тем же ключом, должен быть одинаковым. Запись без каких-либо значений может служить пустым атрибутом.
  • Если 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: { }
 } }

Условно согласованная пара SequenceExamples, конфигурация парсера определяет, должна ли вторая 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 ] } } }
 } }

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

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/versions/r2.9/api_docs/python/tf/train/SequenceExample

Spec-Zone.ru

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