Spec-Zone.ru › TensorFlow 1.15

Модуль: tf.contrib.layers.feature_column

Этот API определяет абстракцию FeatureColumn.

FeatureColumns предоставляют абстракцию высокого уровня для приема и представления признаков в моделях Estimator.

FeatureColumns являются основным способом кодирования признаков для предопределенных Estimator моделей.

При использовании FeatureColumns с Estimator моделями, тип столбца признаков, который вы должны выбрать, зависит от (1) типа признака и (2) типа модели.

(1) Тип признака:

  • Непрерывные признаки могут быть представлены real_valued_column.
  • Категориальные признаки могут быть представлены любым столбцом sparse_column_with_* (sparse_column_with_keys, sparse_column_with_vocabulary_file, sparse_column_with_hash_bucket, sparse_column_with_integerized_feature).

(2) Тип модели:

  • Модели глубоких нейронных сетей (DNNClassifier, DNNRegressor).

    Непрерывные признаки могут быть непосредственно поданы в модели глубоких нейронных сетей.

    age_column = real_valued_column("age")

    Для подачи разреженных признаков в модели DNN оберните столбец с помощью embedding_column или one_hot_column. one_hot_column создаст плотный булевый тензор с записью для каждого возможного значения, и, следовательно, стоимость вычисления будет линейной относительно количества возможных значений по сравнению с количеством значений, которые встречаются в разреженном тензоре. Таким образом, использование "one_hot_column" рекомендуется только для признаков с небольшим количеством возможных значений. Для признаков с большим количеством возможных значений или для очень разреженных признаков рекомендуется embedding_column.

    embedded_dept_column = embedding_column( sparse_column_with_keys("department", ["math", "philosophy", ...]), dimension=10)

  • Широкие (также известные как линейные) модели (LinearClassifier, LinearRegressor).

    Разреженные признаки могут быть непосредственно поданы в линейные модели. При этом используются вложения, чтобы эффективно выполнять умножение разреженных матриц.

    dept_column = sparse_column_with_keys("department", ["math", "philosophy", "english"])

    Рекомендуется, чтобы непрерывные признаки были поделены на интервалы перед подачей в линейные модели.

    bucketized_age_column = bucketized_column( source_column=age_column, boundaries=[18, 25, 30, 35, 40, 45, 50, 55, 60, 65])

    Разреженные признаки могут быть перемножены (также известны как соединенные или объединенные), чтобы сформировать нелинейности, а затем поданы в линейные модели.

    cross_dept_age_column = crossed_column( columns=[department_column, bucketized_age_column], hash_bucket_size=1000)

Пример построения Estimator модели с использованием FeatureColumns:

# Определите признаки и преобразования deep_feature_columns = [age_column, embedded_dept_column] wide_feature_columns = [dept_column, bucketized_age_column, cross_dept_age_column]

# Постройте модель deep estimator = DNNClassifier( feature_columns=deep_feature_columns, hidden_units=[500, 250, 50]) estimator.train(...)

# Или постройте широкую модель estimator = LinearClassifier( feature_columns=wide_feature_columns) estimator.train(...)

# Или постройте широкую и глубокую модель! estimator = DNNLinearCombinedClassifier( linear_feature_columns=wide_feature_columns, dnn_feature_columns=deep_feature_columns, dnn_hidden_units=[500, 250, 50]) estimator.train(...)

FeatureColumns также могут быть преобразованы в общий входной слой для пользовательских моделей с использованием input_from_feature_columns в feature_column_ops.py.

Пример построения не-Estimator модели с использованием FeatureColumns:

# Построение модели с помощью слоев

deep_feature_columns = [age_column, embedded_dept_column] columns_to_tensor = parse_feature_columns_from_examples( serialized=my_data, feature_columns=deep_feature_columns) first_layer = input_from_feature_columns( columns_to_tensors=columns_to_tensor, feature_columns=deep_feature_columns) second_layer = fully_connected(first_layer, ...)

См. feature_column_ops_test для получения дополнительных примеров.

© 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/contrib/layers/feature_column

Spec-Zone.ru

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