Spec-Zone.ru › TensorFlow 2.4

tf.estimator.classifier_parse_example_spec

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

Генерирует спецификацию разбора для tf.parse_example, предназначенную для использования с классификаторами.

tf.estimator.classifier_parse_example_spec(
    feature_columns, label_key, label_dtype=tf.dtypes.int64, label_default=None,
    weight_column=None
)

Если пользователи хранят данные в формате tf.Example, им нужно вызвать tf.parse_example с соответствующей спецификацией признаков. Эта утилита помогает в двух основных аспектах:

  • Пользователям необходимо объединить спецификацию разбора признаков с метками и весами (если они есть), так как все они парсятся из одного экземпляра tf.Example. Эта утилита объединяет эти спецификации.
  • Сложно сопоставить ожидаемую метку классификатора, например, DNNClassifier, с соответствующей спецификацией tf.parse_example. Эта утилита кодирует это, получая необходимую информацию от пользователя (ключ, тип данных).

Пример выходных данных спецификации разбора:

# Define features and transformations
feature_b = tf.feature_column.numeric_column(...)
feature_c_bucketized = tf.feature_column.bucketized_column(
  tf.feature_column.numeric_column("feature_c"), ...)
feature_a_x_feature_c = tf.feature_column.crossed_column(
    columns=["feature_a", feature_c_bucketized], ...)

feature_columns = [feature_b, feature_c_bucketized, feature_a_x_feature_c]
parsing_spec = tf.estimator.classifier_parse_example_spec(
    feature_columns, label_key='my-label', label_dtype=tf.string)

# For the above example, classifier_parse_example_spec would return the dict:
assert parsing_spec == {
  "feature_a": parsing_ops.VarLenFeature(tf.string),
  "feature_b": parsing_ops.FixedLenFeature([1], dtype=tf.float32),
  "feature_c": parsing_ops.FixedLenFeature([1], dtype=tf.float32)
  "my-label" : parsing_ops.FixedLenFeature([1], dtype=tf.string)
}

Пример использования с классификатором:

feature_columns = # define features via tf.feature_column
estimator = DNNClassifier(
    n_classes=1000,
    feature_columns=feature_columns,
    weight_column='example-weight',
    label_vocabulary=['photos', 'keep', ...],
    hidden_units=[256, 64, 16])
# This label configuration tells the classifier the following:
# * weights are retrieved with key 'example-weight'
# * label is string and can be one of the following ['photos', 'keep', ...]
# * integer id for label 'photos' is 0, 'keep' is 1, ...


# Input builders
def input_fn_train():  # Returns a tuple of features and labels.
  features = tf.contrib.learn.read_keyed_batch_features(
      file_pattern=train_files,
      batch_size=batch_size,
      # creates parsing configuration for tf.parse_example
      features=tf.estimator.classifier_parse_example_spec(
          feature_columns,
          label_key='my-label',
          label_dtype=tf.string,
          weight_column='example-weight'),
      reader=tf.RecordIOReader)
   labels = features.pop('my-label')
   return features, labels

estimator.train(input_fn=input_fn_train)
Аргументы
feature_columns Итерируемый объект, содержащий все столбцы признаков. Все элементы должны быть экземплярами классов, производных от FeatureColumn.
label_key Строка, идентифицирующая метку. Это означает, что tf.Example хранит метки с этим ключом.
label_dtype Тип данных метки. По умолчанию это tf.int64. Если пользователь определяет тип label_vocabulary, это должно быть tf.string. Метки типа tf.float32 поддерживаются только для бинарной классификации.
label_default Используется в качестве метки, если ключ label_key не существует в данном tf.Example. Пример использования: предположим, что label_key — это 'clicked', а tf.Example содержит данные clicked только для положительных примеров в следующем формате key:clicked, value:1. Это означает, что если данных с ключом 'clicked' нет, это должно учитываться как отрицательный пример, устанавливая label_deafault=0. Тип этого значения должен быть совместим с label_dtype.
weight_column Строка или объект NumericColumn, созданный с помощью tf.feature_column.numeric_column, определяющий столбец признаков, представляющий веса. Используется для уменьшения или увеличения весов примеров во время обучения. Будет умножаться на потерю примера. Если это строка, она используется в качестве ключа для извлечения тензора весов из features. Если это объект NumericColumn, сырой тензор извлекается по ключу weight_column.key, а затем применяется функция нормализации weight_column.normalizer_fn, чтобы получить тензор весов.
Возвращаемое значение
Словарь, сопоставляющий каждый ключ признака с типом FixedLenFeature или VarLenFeature.
Исключения
ValueError Если метка используется в feature_columns.
ValueError Если weight_column используется в feature_columns.
ValueError Если какой-либо из переданных feature_columns не является экземпляром класса _FeatureColumn.
ValueError Если weight_column не является экземпляром класса NumericColumn.
ValueError Если label_key имеет значение None.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/estimator/classifier_parse_example_spec

Spec-Zone.ru

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