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' часто обеспечивает хорошую точность, особенно со столбцами «мешок слов». Каждый из них можно рассматривать как нормализацию на уровне примера для столбца. Дополнительную информацию см. в 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. |
© 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/feature_column/embedding_column