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
)
Передайте этот класс в 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 для разделения таблиц встраивания. Сбор статистических данных поиска выполняется во время выполнения путём профилирования входных данных встраивания: только 3% образцов входных данных профилируются для минимизации нагрузки на процессор хост-системы. Как только будет профилировано достаточное количество образцов, статистические данные поиска сохраняются в файлы, относящиеся к каждой таблице, в директории профиля, обычно в конце цикла обучения TPU. Имя файла, соответствующее каждой таблице, получается путём хеширования параметров, специфичных для таблицы (например, имя таблицы и количество признаков), и параметров глобальной конфигурации (например, стратегии фрагментации и количества задач). Одну и ту же директорию данных профиля можно использовать для нескольких моделей для повторного использования статистических данных о поиске встраиваний. |
| Исключения | |
|---|---|
ValueError | Если не указаны feature_columns. |
TypeError | Если столбцы признаков не соответствуют требуемому типу (один из _SUPPORTED_FEATURE_COLUMNS, _TPU_EMBEDDING_COLUMN_CLASSES или _EMBEDDING_COLUMN_CLASSES). |
ValueError | Если optimization_parameters не является одним из требуемых типов. |
| Атрибуты | |
|---|---|
feature_columns | |
tensor_core_feature_columns | |
optimization_parameters | |
clipping_limit | |
pipeline_execution_with_tensor_core | |
experimental_gradient_multiplier_fn | |
feature_to_config_dict | |
table_to_config_dict | |
partition_strategy | |
profile_data_directory | |
© 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.4/api_docs/python/tf/compat/v1/estimator/tpu/experimental/EmbeddingConfigSpec