线性估计器的随机双坐标上升助手。
用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。