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, а элементы, соответствующие последовательным столбцам, указывают максимальную длину последовательности для столбца. Любая последовательность, короче этой, будет дополнена нулевыми векторами вложений, а любая последовательность, длиннее — усечена. |
learning_rate_fn | Функция, которая принимает глобальный шаг и возвращает скорость обучения для таблицы вложений. Если вы планируете использовать одну и ту же скорость обучения для нескольких таблиц вложений, убедитесь, что вы передаёте одну и ту же функцию Python во все вызовы `shared_embedding_columns`, в противном случае производительность может пострадать. |
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 для последовательного столбца. |
© 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