tf.compat.v2.estimator.regressor_parse_example_spec
Генерирует спецификацию разбора для tf.parse_example, которая используется с регрессорами.
tf.compat.v2.estimator.regressor_parse_example_spec(
feature_columns, label_key, label_dtype=tf.dtypes.float32, label_default=None,
label_dimension=1, weight_column=None
)
Если пользователи хранят данные в формате tf.Example, они должны вызвать tf.parse_example со соответствующей спецификацией признаков. Эта утилита помогает в двух основных моментах:
- Пользователям необходимо объединить спецификацию разбора признаков с метками и весами (если они есть), так как все они парсятся из одного объекта tf.Example. Эта утилита объединяет эти спецификации.
- Сложно сопоставить ожидаемую метку регрессора, например
DNNRegressorс соответствующей спецификацией 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.regressor_parse_example_spec(
feature_columns, label_key='my-label')
# For the above example, regressor_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.float32)
}
Пример использования с регрессором:
feature_columns = # define features via tf.feature_column
estimator = DNNRegressor(
hidden_units=[256, 64, 16],
feature_columns=feature_columns,
weight_column='example-weight',
label_dimension=3)
# This label configuration tells the regressor the following:
# * weights are retrieved with key 'example-weight'
# * label is a 3 dimension tensor with float32 dtype.
# 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_dimension=3,
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.float32. |
label_default | Используется в качестве метки, если label_key не существует в данном tf.Example. По умолчанию default_value равно None, что означает, что tf.parse_example выдаст ошибку, если метка отсутствует. |
label_dimension | Количество целевых значений регрессии на пример. Это размер последнего измерения меток и логарифмов Tensor (как правило, эти объекты имеют форму [batch_size, label_dimension]). |
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/r1.15/api_docs/python/tf/compat/v2/estimator/regressor_parse_example_spec