Spec-Zone.ru › TensorFlow

tf.train.SequenceExample

A 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, определяемые одним и тем же ключом, должны быть одинаковыми. Запись без каких-либо значений может служить пустым признаком.
  • Если 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