Spec-Zone.ru › TensorFlow

tf.compat.v1.tpu.experimental.shared_embedding_columns

Версия для TPU функции tf.compat.v1.feature_column.shared_embedding_columns.

tf.compat.v1.tpu.experimental.shared_embedding_columns(
    categorical_columns,
    dimension,
    combiner='mean',
    initializer=None,
    shared_embedding_collection_name=None,
    max_sequence_lengths=None,
    learning_rate_fn=None,
    embedding_lookup_device=None,
    tensor_core_shape=None,
    use_safe_embedding_lookup=True
)

Обратите внимание, что интерфейс для tf.tpu.experimental.shared_embedding_columns отличается от интерфейса tf.compat.v1.feature_column.shared_embedding_columns: следующие аргументы НЕ поддерживаются: ckpt_to_load_from, tensor_name_in_ckpt, max_norm и trainable.

Используйте эту функцию вместо tf.compat.v1.feature_column.shared_embedding_columns`, если хотите применять TPU для ускорения поиска эмбеддингов с помощью TPU embeddings.

column_a = tf.feature_column.categorical_column_with_identity(...)
column_b = tf.feature_column.categorical_column_with_identity(...)
tpu_columns = tf.tpu.experimental.shared_embedding_columns(
    [column_a, column_b], 10)
...
def model_fn(features):
  dense_feature = tf.keras.layers.DenseFeature(tpu_columns)
  embedded_feature = dense_feature(features)
  ...

estimator = tf.estimator.tpu.TPUEstimator(
    model_fn=model_fn,
    ...
    embedding_config_spec=tf.estimator.tpu.experimental.EmbeddingConfigSpec(
        column=tpu_columns,
        ...))
Аргументы
categorical_columns Список категориальных столбцов, возвращаемых функциями categorical_column_with_identity, weighted_categorical_column, categorical_column_with_vocabulary_file, categorical_column_with_vocabulary_list, sequence_categorical_column_with_identity, sequence_categorical_column_with_vocabulary_file, sequence_categorical_column_with_vocabulary_list
dimension Целое число, задающее размерность эмбеддинга; должно быть > 0.
combiner Строка, задающая способ редукции, если в одной строке есть несколько элементов для столбца, не являющегося последовательностью. Подробнее см. в описании tf.feature_column.embedding_column.
initializer Функция-инициализатор переменной, используемая для инициализации переменной эмбеддинга. Если не указана, по умолчанию используется tf.truncated_normal_initializer со средним значением 0.0 и стандартным отклонением 1/sqrt(dimension).
shared_embedding_collection_name Необязательное имя коллекции, в которую добавляются общие веса эмбеддингов. Если не указано, будет выбрано подходящее имя на основе имен categorical_columns. Оно также используется в variable_scope при создании общих весов эмбеддингов.
max_sequence_lengths Список неотрицательных целых чисел: None, пустой список или список той же длины, что и аргумент categorical_columns. Для элементов, соответствующих столбцам, не являющимся последовательностями, значения должны быть равны 0; элементы, соответствующие столбцам-последовательностям, задают максимальную длину последовательности для столбца. Более короткие последовательности будут дополнены нулевыми эмбеддингами, а более длинные — усечены.
learning_rate_fn Функция, которая принимает глобальный шаг и возвращает скорость обучения для таблицы эмбеддингов. Если вы собираетесь использовать одну и ту же скорость обучения для нескольких таблиц эмбеддингов, передавайте во все вызовы shared_embedding_columns одну и ту же функцию Python; в противном случае производительность может снизиться.
embedding_lookup_device Устройство, на котором выполняется поиск эмбеддингов. Допустимые значения: "cpu", "tpu_tensor_core" и "tpu_embedding_core". При указании "tpu_tensor_core" необходимо задать tensor_core_shape. Значение по умолчанию — "cpu". Если параметр не задан, при обучении поиск эмбеддингов по умолчанию выполняется на "tpu_embedding_core", а при инференсе — на "cpu". Допустимые значения для обучения: ["tpu_embedding_core", "tpu_tensor_core"]. Допустимые значения для обслуживания: ["cpu", "tpu_tensor_core"]. При обучении tpu_embedding_core подходит для больших словарей эмбеддингов (>1M), в остальных случаях часто достаточно tpu_tensor_core. При обслуживании поиск эмбеддингов на tpu_tensor_core позволяет снизить нагрузку на CPU хоста, если она является узким местом.
tensor_core_shape Если задан, список целых чисел, определяющий требуемую плотную форму для поиска эмбеддингов этого признака на TensorCore. Для динамической формы измерение пакета можно оставить равным None или -1. В настоящее время поддерживаются только формы ранга 2.
use_safe_embedding_lookup Если значение равно true, вместо embedding_lookup_sparse используется safe_embedding_lookup_sparse. safe_embedding_lookup_sparse гарантирует отсутствие пустых строк и положительные значения всех весов и идентификаторов, но требует дополнительных вычислений. Это применимо только к входным тензорам формы ранга 2 (NxM). По умолчанию имеет значение true; рассмотрите возможность отключения, если перечисленные выше проверки не нужны. Обратите внимание, что наличие пустых строк не вызовет ошибку, хотя результат может быть равен 0 или отсутствовать.
Возвращает
Список объектов _TPUSharedEmbeddingColumnV2.
Вызывает исключения
ValueError если dimension не больше 0.
ValueError если initializer указан, но не является вызываемым объектом.
ValueError если max_sequence_lengths указан и его длина не совпадает с длиной categorical_columns.
ValueError если max_sequence_lengths положителен для столбца, не являющегося последовательностью, или равен 0 для столбца-последовательности.

© 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/tpu/experimental/shared_embedding_columns

Spec-Zone.ru

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