Spec-Zone.ru › TensorFlow 1.15

tf.estimator.experimental.LinearSDCA

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

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

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

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

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

tf.compat.v1.estimator.experimental.LinearSDCA, `tf.compat.v2.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.

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

Spec-Zone.ru

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