Spec-Zone.ru › TensorFlow 2.3

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 Строка или объект, созданный с помощью tf.feature_column.numeric_column, определяющий столбец признаков, представляющий веса. Используется для понижения или повышения важности примеров во время обучения. Будет умножен на потерю примера. Если это строка, она используется как ключ для извлечения тензора весов из features. Если это объект, исходный тензор извлекается по ключу 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.3/api_docs/python/tf/estimator/classifier_parse_example_spec

Spec-Zone.ru

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