線性估計器的隨機雙坐標上升助手。
用法
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
)
參數
-
example_id_column
包含示例 ID 的列名。 -
num_loss_partitions
工人人數。 -
num_table_shards
內部狀態表的分片數,通常設置為與參數服務器的數量相匹配。 -
symmetric_l1_regularization
浮點值,必須大於或等於零。 -
symmetric_l2_regularization
浮點值,必須大於零,通常應大於 1。 -
adaptive
一個布爾值,指示是否使用自適應采樣。
在創建 tf.estimator.LinearClassifier
或 tf.estimator.LinearRegressor
時,此類的對象旨在作為優化器參數提供(盡管 LinearSDCA 對象不實現 tf.train.Optimizer
接口)。
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
,其值為形狀為[batch_size]的Tensor
和dtype 字符串。 num_loss_partitions 在 [3] 的 eq (11) 中定義了 sigma'。如果 num_loss_partitions
大於或等於乘積 (#concurrent train ops/per worker) x (#workers)
,則保證(全局)損失的收斂。 num_loss_partitions
的值越大,收斂越慢。 tf.estimator
中num_loss_partitions
的推薦值(目前每個工人有一個進程)是運行火車步驟的工人數量。默認為 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
相關用法
- Python tf.estimator.experimental.stop_if_lower_hook用法及代碼示例
- Python tf.estimator.experimental.stop_if_no_increase_hook用法及代碼示例
- Python tf.estimator.experimental.RNNClassifier用法及代碼示例
- Python tf.estimator.experimental.make_early_stopping_hook用法及代碼示例
- Python tf.estimator.experimental.stop_if_higher_hook用法及代碼示例
- Python tf.estimator.experimental.InMemoryEvaluatorHook用法及代碼示例
- Python tf.estimator.experimental.RNNEstimator用法及代碼示例
- Python tf.estimator.experimental.stop_if_no_decrease_hook用法及代碼示例
- Python tf.estimator.TrainSpec用法及代碼示例
- Python tf.estimator.LogisticRegressionHead用法及代碼示例
- Python tf.estimator.MultiHead用法及代碼示例
- Python tf.estimator.PoissonRegressionHead用法及代碼示例
- Python tf.estimator.WarmStartSettings用法及代碼示例
- Python tf.estimator.RunConfig用法及代碼示例
- Python tf.estimator.MultiLabelHead用法及代碼示例
- Python tf.estimator.BaselineEstimator用法及代碼示例
- Python tf.estimator.DNNLinearCombinedEstimator用法及代碼示例
- Python tf.estimator.Estimator用法及代碼示例
- Python tf.estimator.LinearRegressor用法及代碼示例
- Python tf.estimator.LinearEstimator用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.estimator.experimental.LinearSDCA。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。