tf.feature_column.embedding_column
| Просмотреть исходный код на GitHub |
DenseColumn для преобразования из разреженного категориального входного значения.
tf.feature_column.embedding_column(
categorical_column,
dimension,
combiner='mean',
initializer=None,
ckpt_to_load_from=None,
tensor_name_in_ckpt=None,
max_norm=None,
trainable=True,
use_safe_embedding_lookup=True
)
Используйте эту функцию, когда ваши входные данные разреженные, но вы хотите преобразовать их в плотное представление (например, для подачи в DNN).
Входные данные должны быть CategoricalColumn , созданным любой из categorical_column_* функций. Вот пример использования embedding_column с DNNClassifier:
video_id = categorical_column_with_identity(
key='video_id', num_buckets=1000000, default_value=0)
columns = [embedding_column(video_id, 9),...]
estimator = tf.estimator.DNNClassifier(feature_columns=columns, ...)
label_column = ...
def input_fn():
features = tf.io.parse_example(
..., features=make_parse_example_spec(columns + [label_column]))
labels = features.pop(label_column.name)
return features, labels
estimator.train(input_fn=input_fn, steps=100)
Вот пример использования embedding_column с model_fn:
def model_fn(features, ...):
video_id = categorical_column_with_identity(
key='video_id', num_buckets=1000000, default_value=0)
columns = [embedding_column(video_id, 9),...]
dense_tensor = input_layer(features, columns)
# Form DNN layers, calculate loss, and return EstimatorSpec.
...
| Аргументы | |
|---|---|
categorical_column | CategoricalColumn , созданный categorical_column_with_* функцией. Этот столбец генерирует разреженные идентификаторы, которые являются входными данными для поиска встраивания. |
dimension | Целое число, определяющее размер встраивания, должно быть > 0. |
combiner | Строка, определяющая способ уменьшения, если в одной строке несколько записей. В настоящее время поддерживаются «mean», «sqrtn» и «sum», по умолчанию «mean». «sqrtn» часто обеспечивает хорошую точность, особенно с колонками «bag-of-words». Каждый из этих методов можно рассматривать как нормализацию столбца на уровне примера. Для получения дополнительной информации см. tf.embedding_lookup_sparse. |
initializer | Функция инициализации переменной, которая используется при инициализации переменной встраивания. Если не указана, по умолчанию используется truncated_normal_initializer со средним значением 0.0 и стандартным отклонением 1/sqrt(dimension). |
ckpt_to_load_from | Строка, представляющая имя/шаблон контрольной точки, из которой восстанавливать веса столбца. Требуется, если tensor_name_in_ckpt не None. |
tensor_name_in_ckpt | Имя Tensor в ckpt_to_load_from , из которого восстанавливать веса столбца. Требуется, если ckpt_to_load_from не None. |
max_norm | Если не None, значения встраивания нормализуются с помощью l2 до этого значения. |
trainable | Является ли встраивание обучаемым. По умолчанию True. |
use_safe_embedding_lookup | Если True, используется safe_embedding_lookup_sparse вместо embedding_lookup_sparse. safe_embedding_lookup_sparse гарантирует отсутствие пустых строк и положительность всех весов и идентификаторов за счет дополнительных вычислительных затрат. Это относится только к входным тензорам ранга 2 (NxM). По умолчанию True, рассмотрите возможность отключения, если вышеуказанные проверки не нужны. Обратите внимание, что наличие пустых строк не вызовет никакой ошибки, хотя результат вывода может быть 0 или пропущен. |
| Возвращаемое значение | |
|---|---|
DenseColumn для преобразования из разреженного входного значения. |
| Исключения | |
|---|---|
ValueError | если dimension не > 0. |
ValueError | если ровно один из ckpt_to_load_from и tensor_name_in_ckpt указан. |
ValueError | если initializer указан и не является вызываемой функцией. |
RuntimeError | если включено выполнение в режиме eager. |
© 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/versions/r2.9/api_docs/python/tf/feature_column/embedding_column