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 встраиваний.
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, а записи, соответствующие последовательным столбцам, указывают максимальную длину последовательности для столбца. Любая последовательность, короче этой, будет дополнена 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 подходит для больших словарей встраивания (> 1 млн), в противном случае tpu_tensor_core часто достаточно. Для предоставления сервиса поиск встраивания на tpu_tensor_core во время предоставления сервиса — способ уменьшить использование процессора хоста в тех случаях, когда это является узким местом. |
tensor_core_shape |
Если указано, список целых чисел, определяющий предполагаемую плотную форму для выполнения поиска встраивания для этого признака на TensorCore. Размер пакетной обработки может быть None или -1, чтобы указать динамический размер. В настоящее время поддерживаются только формы ранга 2. |
use_safe_embedding_lookup |
Если True, использует safe_embedding_lookup_sparse вместо 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 для последовательного столбца. |
© 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/compat/v1/tpu/experimental/shared_embedding_columns