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 | Функция, которая принимает глобальный шаг и возвращает скорость обучения для таблицы вложения. Если вы планируете использовать одну и ту же скорость обучения для нескольких таблиц вложения, убедитесь, что вы передаете ровно ту же самую функцию 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/versions/r2.9/api_docs/python/tf/compat/v1/tpu/experimental/shared_embedding_columns