Spec-Zone.ru › TensorFlow

tf.compat.v1.feature_column.linear_model

Возвращает линейный прогноз Tensor на основе заданного значения feature_columns. (устарело)

Предупреждение: tf.feature_column не рекомендуется использовать в новом коде. Вместо этого предварительную обработку признаков можно выполнять напрямую с помощью слоёв предварительной обработки Keras или с помощью универсальной утилиты tf.keras.utils.FeatureSpace, построенной на их основе. Подробности см. в руководстве по миграции.
tf.compat.v1.feature_column.linear_model(
    features,
    feature_columns,
    units=1,
    sparse_combiner='sum',
    weight_collections=None,
    trainable=True,
    cols_to_vars=None
)
Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в одной из будущих версий. Инструкции по обновлению: используйте вместо неё слои предварительной обработки Keras — напрямую или через утилиту tf.keras.utils.FeatureSpace. Для каждого элемента tf.feature_column.* в tf.keras.layers имеется функциональный эквивалент для предварительной обработки признаков при обучении модели Keras.

Эта функция вычисляет взвешенную сумму с размерностью выходных данных units. В задачах классификации взвешенная сумма соответствует логитам. В задачах линейной регрессии она соответствует самому прогнозу.

Примечание о поддерживаемых столбцах: linear_model обрабатывает категориальные столбцы как indicator_column. В частности, предположим, что входные данные SparseTensor имеют следующий вид:

shape = [2, 2]
{
    [0, 0]: "a"
    [1, 0]: "b"
    [1, 1]: "c"
}

linear_model неявно присваивает веса наличию значений "a", "b", "c', как и indicator_column, тогда как input_layer явно требует обернуть каждый категориальный столбец в embedding_column или indicator_column.

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

price = numeric_column('price')
price_buckets = bucketized_column(price, boundaries=[0., 10., 100., 1000.])
keywords = categorical_column_with_hash_bucket("keywords", 10K)
keywords_price = crossed_column('keywords', price_buckets, ...)
columns = [price_buckets, keywords, keywords_price ...]
features = tf.io.parse_example(..., features=make_parse_example_spec(columns))
prediction = linear_model(features, columns)

Аргумент sparse_combiner работает следующим образом. Например, для двух признаков, представленных категориальными столбцами:

# Feature 1

shape = [2, 2]
{
    [0, 0]: "a"
    [0, 1]: "b"
    [1, 0]: "c"
}

# Feature 2

shape = [2, 3]
{
    [0, 0]: "d"
    [1, 0]: "e"
    [1, 1]: "f"
    [1, 2]: "f"
}

при значении sparse_combiner, равном "mean", выходные данные линейной модели будут следующими:

y_0 = 1.0 / 2.0 * ( w_a + w_b ) + w_d + b
y_1 = w_c + 1.0 / 3.0 * ( w_e + 2.0 * w_f ) + b

где y_i — это выходное значение, b — смещение, а w_x — вес, присваиваемый наличию x во входных признаках.

Аргументы
features Сопоставление ключей с тензорами. _FeatureColumn обращаются к значениям по этим ключам. Например, numeric_column('price') будет искать в этом словаре ключ 'price'. Значения представляют собой Tensor или SparseTensor в зависимости от соответствующего _FeatureColumn.
feature_columns Итерируемый объект, содержащий FeatureColumns, которые будут использоваться в качестве входных данных модели. Все элементы должны быть экземплярами классов, производных от _FeatureColumn.
units Целое число, задающее размерность пространства выходных данных. Значение по умолчанию — 1.
sparse_combiner Строка, задающая способ свёртки данных, если категориальный столбец содержит несколько значений. За исключением numeric_column, почти все столбцы, передаваемые в linear_model, считаются категориальными. Каждый категориальный столбец обрабатывается независимо. Сейчас поддерживаются значения "mean", "sqrtn" и "sum"; значение по умолчанию для линейной модели — "sum". Часто "sqrtn" обеспечивает хорошую точность, в частности для столбцов «мешок слов».
  • "sum": не нормализовать признаки в столбце
  • "mean": выполнять L1-нормализацию признаков в столбце
  • "sqrtn": выполнять L2-нормализацию признаков в столбце
weight_collections Список имён коллекций, в которые будет добавлена переменная. Обратите внимание, что переменные также будут добавлены в коллекции tf.GraphKeys.GLOBAL_VARIABLES и ops.GraphKeys.MODEL_VARIABLES.
trainable Если True, также добавить переменную в коллекцию графа GraphKeys.TRAINABLE_VARIABLES (см. tf.Variable).
cols_to_vars Если значение не равно None, должен быть словарь, который будет заполнен сопоставлениями от _FeatureColumn к соответствующему списку Variable. Например, после вызова мы можем получить cols_to_vars = { _NumericColumn( key='numeric_feature1', shape=(1,): [], 'bias': [], _NumericColumn( key='numeric_feature2', shape=(2,)): []} Если столбец не создаёт переменных, его значением будет пустой список. Обратите внимание, что cols_to_vars также будет содержать строковый ключ 'bias', соответствующий списку переменных.
Возвращает
Tensor, представляющий прогнозы/логиты линейной модели. Его форма — (batch_size, units), а тип данных — float32.
Исключения
ValueError если элемент в feature_columns не является ни _DenseColumn, ни _CategoricalColumn.

© 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/compat/v1/feature_column/linear_model

Spec-Zone.ru

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