tf.compat.v1.estimator.tpu.experimental.EmbeddingConfigSpec
Класс для отслеживания спецификаций TPU встраиваний.
tf.compat.v1.estimator.tpu.experimental.EmbeddingConfigSpec(
feature_columns=None,
optimization_parameters=None,
clipping_limit=None,
pipeline_execution_with_tensor_core=False,
experimental_gradient_multiplier_fn=None,
feature_to_config_dict=None,
table_to_config_dict=None,
partition_strategy='div',
profile_data_directory=None
)
Переход к TF2
TPU Estimator управляет собственной графой TensorFlow и сессией, поэтому он несовместим с поведением TF2. Мы рекомендуем вам перейти к более новому tf.distribute.TPUStrategy. Подробности см. в руководстве по TPU.
Описание
Передайте этот класс в tf.estimator.tpu.TPUEstimator через параметр embedding_config_spec. Минимально необходимо указать feature_columns и optimization_parameters. Передаваемые столбцы признаков должны быть созданы с помощью некоторой комбинации tf.tpu.experimental.embedding_column и tf.tpu.experimental.shared_embedding_columns.
TPU-встраивания не поддерживают произвольные оптимизаторы Tensorflow, и основной оптимизатор, который вы используете для вашей модели, будет проигнорирован для переменных таблицы встраивания. Вместо этого TPU-встраивания поддерживают фиксированный набор предопределённых оптимизаторов, которые вы можете выбрать и настроить параметры. К ним относятся adagrad, adam и стохастический градиентный спуск. Каждый поддерживаемый оптимизатор имеет класс Parameters в пространстве имён tf.tpu.experimental.
column_a = tf.feature_column.categorical_column_with_identity(...)
column_b = tf.feature_column.categorical_column_with_identity(...)
column_c = tf.feature_column.categorical_column_with_identity(...)
tpu_shared_columns = tf.tpu.experimental.shared_embedding_columns(
[column_a, column_b], 10)
tpu_non_shared_column = tf.tpu.experimental.embedding_column(
column_c, 10)
tpu_columns = [tpu_non_shared_column] + tpu_shared_columns
...
def model_fn(features):
dense_features = tf.keras.layers.DenseFeature(tpu_columns)
embedded_feature = dense_features(features)
...
estimator = tf.estimator.tpu.TPUEstimator(
model_fn=model_fn,
...
embedding_config_spec=tf.estimator.tpu.experimental.EmbeddingConfigSpec(
column=tpu_columns,
optimization_parameters=(
tf.estimator.tpu.experimental.AdagradParameters(0.1))))
| Аргументы | ||
|---|---|---|
feature_columns | Все встраивания FeatureColumn используемые моделью. | |
optimization_parameters | Экземпляр AdagradParameters, AdamParameters или StochasticGradientDescentParameters. Этот оптимизатор будет применён ко всем переменным встраивания, указанным в feature_columns. | |
clipping_limit | (Необязательно) Предел ограничения (абсолютное значение). | |
pipeline_execution_with_tensor_core | Установка этого значения в True ускоряет обучение, но обученная модель будет отличаться, если шаг N и шаг N+1 включают один и тот же набор идентификаторов встраивания. Подробности см. в tpu_embedding_configuration.proto. | |
experimental_gradient_multiplier_fn | (Необязательно) Функция, принимающая глобальный шаг в качестве входных данных и возвращающая текущий множитель для всех градиентов встраивания. | |
feature_to_config_dict | Словарь, сопоставляющий имена признаков с экземплярами класса FeatureConfig. Должны быть указаны либо `features_columns`, либо пара feature_to_config_dict и table_to_config_dict . | |
table_to_config_dict | Словарь, сопоставляющий имена признаков с экземплярами класса TableConfig. Должны быть указаны либо `features_columns`, либо пара feature_to_config_dict и table_to_config_dict . | |
partition_strategy | Строка, определяющая, как тензоры фрагментируются на хосты tpu. Для получения дополнительной информации см. tf.nn.safe_embedding_lookup_sparse. Допустимые значения "div" и "mod"'. If"mod"is used, evaluation and exporting the model to CPU will not work as expected. </td> </tr><tr> <td>profile_data_directory` | Каталог, в котором хранятся статистические данные о поиске встраиваний. Эти статистические данные содержат информацию о входах в операцию поиска встраиваний, в частности, о среднем количестве идентификаторов встраивания на пример и о том, насколько хорошо идентификаторы встраивания сбалансированы по всей системе. Статистические данные поиска встраиваний используются во время инициализации TPU для разбиения таблиц встраивания. Сбор статистических данных поиска встраивания выполняется во время выполнения, путём профилирования входов в поиск встраивания, только небольшая часть входных выборок профилируется, чтобы минимизировать загрузку ЦП на хост. Как только подходящее количество выборок будет профилировано, статистические данные поиска встраивания сохраняются в файлы, специфичные для таблицы, в каталоге профилей, обычно в конце цикла обучения TPU. Имя файла, соответствующее каждой таблице, получается путём хэширования параметров, специфичных для таблицы (например, имя таблицы и количество признаков), и глобальных параметров конфигурации (например, стратегии фрагментации и количества задач). Один и тот же каталог данных профиля может быть совместно использован между несколькими моделями для повторного использования статистических данных поиска встраивания. |
| Исключения | |
|---|---|
ValueError | Если `feature_columns` не указаны. |
TypeError | Если столбцы признаков не соответствуют требуемому типу (один из _SUPPORTED_FEATURE_COLUMNS, _TPU_EMBEDDING_COLUMN_CLASSES или _EMBEDDING_COLUMN_CLASSES). |
ValueError | Если optimization_parameters не является одним из требуемых типов. |
| Атрибуты | |
|---|---|
feature_columns | Псевдоним namedtuple для поля номер 0 |
tensor_core_feature_columns | Псевдоним namedtuple для поля номер 1 |
optimization_parameters | Псевдоним namedtuple для поля номер 2 |
clipping_limit | Псевдоним namedtuple для поля номер 3 |
pipeline_execution_with_tensor_core | Псевдоним namedtuple для поля номер 4 |
experimental_gradient_multiplier_fn | Псевдоним namedtuple для поля номер 5 |
feature_to_config_dict | Псевдоним namedtuple для поля номер 6 |
table_to_config_dict | Псевдоним namedtuple для поля номер 7 |
partition_strategy | Псевдоним namedtuple для поля номер 8 |
profile_data_directory | Псевдоним namedtuple для поля номер 9 |
© 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/estimator/tpu/experimental/EmbeddingConfigSpec