Spec-Zone.ru › TensorFlow 1.15

tf.compat.v2.feature_column.shared_embeddings

Список плотных столбцов, которые преобразуют разреженный категориальный ввод.

tf.compat.v2.feature_column.shared_embeddings(
    categorical_columns, dimension, combiner='mean', initializer=None,
    shared_embedding_collection_name=None, ckpt_to_load_from=None,
    tensor_name_in_ckpt=None, max_norm=None, trainable=True
)

Это аналогично embedding_column, за исключением того, что он генерирует список столбцов встраивания, которые используют одни и те же веса встраивания.

Используйте это, когда ваши входные данные являются разреженными и одного типа (например, идентификаторы видео с просмотром и отображением, которые используют один и тот же словарь), и вы хотите преобразовать их в плотное представление (например, для подачи в DNN).

Входы должны быть списком категориальных столбцов, созданных любой из функций categorical_column_*. Они должны быть всех одного типа и иметь одинаковые аргументы, за исключением key. Например, они могут быть categorical_column_with_vocabulary_file с одним и тем же vocabulary_file. Некоторые или все столбцы также могут быть weighted_categorical_column.

Вот пример встраивания двух признаков для модели DNNClassifier:

watched_video_id = categorical_column_with_vocabulary_file(
    'watched_video_id', video_vocabulary_file, video_vocabulary_size)
impression_video_id = categorical_column_with_vocabulary_file(
    'impression_video_id', video_vocabulary_file, video_vocabulary_size)
columns = shared_embedding_columns(
    [watched_video_id, impression_video_id], dimension=10)

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)

Вот пример использования shared_embedding_columns с model_fn:

def model_fn(features, ...):
  watched_video_id = categorical_column_with_vocabulary_file(
      'watched_video_id', video_vocabulary_file, video_vocabulary_size)
  impression_video_id = categorical_column_with_vocabulary_file(
      'impression_video_id', video_vocabulary_file, video_vocabulary_size)
  columns = shared_embedding_columns(
      [watched_video_id, impression_video_id], dimension=10)
  dense_tensor = input_layer(features, columns)
  # Form DNN layers, calculate loss, and return EstimatorSpec.
  ...
Аргументы
categorical_columns Список категориальных столбцов, созданных функцией categorical_column_with_*. Эти столбцы генерируют разреженные идентификаторы, которые являются входными данными для поиска встраивания. Все столбцы должны быть одного типа и иметь одинаковые аргументы, за исключением key. Например, они могут быть categorical_column_with_vocabulary_file с одним и тем же vocabulary_file. Некоторые или все столбцы также могут быть weighted_categorical_column.
dimension Целое число, определяющее размер встраивания, должно быть > 0.
combiner Строка, определяющая способ сокращения, если в одной строке несколько записей. В настоящее время поддерживаются 'mean', 'sqrtn' и 'sum', по умолчанию используется 'mean'. 'sqrtn' часто обеспечивает хорошую точность, особенно со столбцами bag-of-words. Каждый из них можно рассматривать как нормализацию на уровне примера для столбца. Дополнительную информацию см. в tf.embedding_lookup_sparse.
initializer Функция инициализации переменной, которая будет использоваться при инициализации переменных встраивания. Если не указано, по умолчанию используется truncated_normal_initializer со средним значением 0.0 и стандартным отклонением 1/sqrt(dimension).
shared_embedding_collection_name Необязательное общее имя этих столбцов. Если не указано, будет выбрано разумное имя на основе имен categorical_columns.
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.
Возвращает
Список плотных столбцов, которые преобразуют разреженные входные данные. Порядок результатов соответствует порядку categorical_columns.
Исключения
ValueError если dimension не > 0.
ValueError если любой из предоставленных categorical_columns имеет другой тип или разные аргументы, чем остальные.
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/r1.15/api_docs/python/tf/compat/v2/feature_column/shared_embeddings

Spec-Zone.ru

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