Spec-Zone.ru › TensorFlow 2.3

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_* , передаваемые для обучения и оценки, возвращают пару (dict, label_tensor), где dict имеет 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.

© 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.3/api_docs/python/tf/estimator/experimental/LinearSDCA

Spec-Zone.ru

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