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 с моделью 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 гарантирует отсутствие пустых строк и всех положительных значений весов и идентификаторов за счет дополнительных вычислительных затрат. Это относится только к входным тензорам формы rank 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.4/api_docs/python/tf/feature_column/embedding_column