當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.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
)

參數

  • example_id_column 包含示例 ID 的列名。
  • num_loss_partitions 工人人數。
  • num_table_shards 內部狀態表的分片數,通常設置為與參數服務器的數量相匹配。
  • symmetric_l1_regularization 浮點值,必須大於或等於零。
  • symmetric_l2_regularization 浮點值,必須大於零,通常應大於 1。
  • adaptive 一個布爾值,指示是否使用自適應采樣。

在創建 tf.estimator.LinearClassifiertf.estimator.LinearRegressor 時,此類的對象旨在作為優化器參數提供(盡管 LinearSDCA 對象不實現 tf.train.Optimizer 接口)。

SDCA 隻能在以下條件下與LinearClassifierLinearRegressor 一起使用:

  • 特征列的類型為 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_columnkey,其值為形狀為[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.estimatornum_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

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.estimator.experimental.LinearSDCA。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。