Spec-Zone.ru › TensorFlow 2.9

tf.estimator.experimental.LinearSDCA

Просмотреть исходный код на GitHub

Помощник Stochastic Dual Coordinate Ascent для линейных оценщиков.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.estimator.experimental.LinearSDCA

tf.estimator.experimental.LinearSDCA(
    example_id_column,
    num_loss_partitions=1,
    num_table_shards=None,
    symmetric_l1_regularization=0.0,
    symmetric_l2_regularization=1.0,
    adaptive=False
)

Объекты этого класса предназначены для использования в качестве аргумента оптимизатора (хотя объекты LinearSDCA не реализуют tf.train.Optimizer интерфейс) при создании tf.estimator.LinearClassifier или tf.estimator.LinearRegressor.

SDCA может использоваться только с LinearClassifier и LinearRegressor при следующих условиях:

  • Столбцы признаков являются типа V2.
  • Многозначные категориальные столбцы не нормализованы. Другими словами, аргумент sparse_combiner в конструкторе оценщика должен быть "sum".
  • Для классификации: бинарная метка.
  • Для регрессии: одномерная метка.

Пример использования:

real_feature_column = numeric_column(...)
sparse_feature_column = categorical_column_with_hash_bucket(...)
linear_sdca = tf.estimator.experimental.LinearSDCA(
    example_id_column='example_id',
    num_loss_partitions=1,
    num_table_shards=1,
    symmetric_l2_regularization=2.0)
classifier = tf.estimator.LinearClassifier(
    feature_columns=[real_feature_column, sparse_feature_column],
    weight_column=...,
    optimizer=linear_sdca)
classifier.train(input_fn_train, steps=50)
classifier.evaluate(input_fn=input_fn_eval)

Здесь ожидается, что функции input_fn_* , используемые для обучения и оценки, возвращают пару (словарь, тензор_метки), где словарь имеет example_id_column в качестве key , значение которого является Tensor формы [размер_пакета] и типа string. num_loss_partitions определяет sigma' в уравнении (11) из [3]. Сходимость (глобальной) потери гарантирована, если num_loss_partitions больше или равно произведению (#concurrent train ops/per worker) x (#workers). Более высокие значения для num_loss_partitions приводят к более медленной сходимости. Рекомендуемое значение для num_loss_partitions в tf.estimator (в настоящее время используется по одному процессу на рабочий узел) — количество рабочих узлов, выполняющих шаги обучения. По умолчанию оно равно 1 (один компьютер). num_table_shards определяет количество фрагментов для внутренней таблицы состояния, обычно устанавливается так, чтобы соответствовать количеству серверов параметров для больших наборов данных.

Алгоритм SDCA был первоначально представлен в [1], за ним последовал L1-ближайший шаг [2], распределённая версия [3] и адаптивная выборка [4]. [1] www.jmlr.org/papers/volume14/shalev-shwartz13a/shalev-shwartz13a.pdf [2] https://arxiv.org/pdf/1309.2375.pdf [3] https://arxiv.org/pdf/1502.03508.pdf [4] https://arxiv.org/pdf/1502.08053.pdf Подробности, специфичные для этой реализации, приведены в: https://github.com/tensorflow/estimator/tree/master/tensorflow_estimator/python/estimator/canned/linear_optimizer/doc/sdca.ipynb

Аргументы
example_id_column Имя столбца, содержащего идентификаторы примеров.
num_loss_partitions Количество рабочих узлов.
num_table_shards Количество фрагментов внутренней таблицы состояния, обычно устанавливается так, чтобы соответствовать количеству серверов параметров.
symmetric_l1_regularization Вещественное значение, должно быть больше или равно нулю.
symmetric_l2_regularization Вещественное значение, должно быть больше нуля и обычно больше 1.
adaptive Булево значение, указывающее, использовать ли адаптивную выборку.

Методы

get_train_step

Просмотреть исходный код

get_train_step(
    state_manager,
    weight_column_name,
    loss_type,
    feature_columns,
    features,
    targets,
    bias_var,
    global_step
)

Возвращает операцию обучения оптимизатора SdcaModel.

© 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/estimator/experimental/LinearSDCA

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API