优化器
Adagrad
自定义Adagrad优化器。
def create_hash_optimizer(learning_rate=0.001, initial_accumulator_value=0.9, use_locking=False, name="Adagrad")
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate | float/tf.Tensor | 可选 | 学习率。默认值:0.001。取值范围:[0.0, 10.0]。 |
| initial_accumulator_value | float | 可选 | 累加器的初始值。取值范围:(0.0, 1.0]。默认值:0.9。 |
| use_locking | bool | 可选 | 优化器中防止对变量并发更新。默认值:False。取值范围:True、False。 |
| name | string | 可选 | 优化器名称。默认值:Adagrad。名称长度范围:[1, 200]。 |
CustomizedAdagrad(自定义Adagrad优化器)的一个实例对象。
from mx_rec.optimizers.adagrad import create_hash_optimizer
hashtable_optimizer = create_hash_optimizer(0.001)
Ftrl
自定义Ftrl优化器。
def create_hash_optimizer(learning_rate, use_locking=False, name="Ftrl", **kwargs)
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate | float/tf.Tensor | 必选 | 学习率。取值范围:[0.0, 10.0]。 |
| use_locking | bool | 可选 | 优化器中防止对变量并发更新。默认值:False。取值范围:True、False。 |
| name | string | 可选 | 优化器名称。默认值:Ftrl。名称长度范围:[1, 200]。 |
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate_power | float | 可选 | 控制训练期间学习率的下降。默认值:-0.5。取值范围:[-2147483647.0, 0.0]。 |
| initial_accumulator_value | float | 可选 | 累积器的初始值。默认值:0.1。取值范围:(0.0, 1.0]。 |
| l1_regularization_strength | float | 可选 | L1正则化惩罚。默认值:0.0。取值范围:[0.0, 10000.0]。 |
| l2_regularization_strength | float | 可选 | L2正则化惩罚。默认值:0.0。取值范围:[0.0, 10000.0]。 |
| accum_name | string | 可选 | 保存梯度平方累加器的变量的后缀。默认值:None。长度范围:[1, 255]。 |
| linear_name | string | 可选 | 保存线性梯度累加器的变量的后缀。默认值:None。长度范围:[1, 255]。 |
| l2_shrinkage_regularization_strength | float | 可选 | L2正则化幅度惩罚。默认值:0.0。取值范围:[0.0, 10000.0]。 |
Note
如果通过kwargs传递其他未说明参数,则Rec SDK TensorFlow内部不会使用到该参数。
CustomizedFtrl(自定义Ftrl优化器)的一个实例对象。
from mx_rec.optimizers.ftrl import create_hash_optimizer
hashtable_optimizer = create_hash_optimizer(0.001)
SGD
自定义SGD优化器。
def create_hash_optimizer(learning_rate, use_locking=False, name="GradientDescent", use_fusion_optim=False, weight_decay=None)
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate | float/tf.Tensor | 必选 | 学习率。取值范围:[0.0, 10.0]。 |
| use_locking | bool | 可选 | 优化器中防止对变量并发更新。默认值:False。取值范围:True、False。 |
| name | string | 可选 | 优化器名称。默认值:GradientDescent。名称长度范围:[1, 200]。 |
| use_fusion_optim | bool | 可选 | 是否使能算子加速。默认值:False。 取值范围: |
| weight_decay | float | 可选 | 权重衰减系数。默认值:None,即不使能权重衰减。取值范围:[1e-5, 1e-2]。 |
CustomizedGradientDescent(自定义SGD优化器)的一个实例对象。
from mx_rec.optimizers.gradient_descent import create_hash_optimizer
hashtable_optimizer = create_hash_optimizer(0.001)
SGDByAddr
自定义SGDByAddr地址优化器。
def create_hash_optimizer_by_addr(learning_rate, weight_decay=0.0001, use_locking=False, name="GradientDescentByAddr")
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate | float/tf.Tensor | 必选 | 学习率。取值范围:[0.0, 10.0]。 |
| weight_decay | float | 可选 | 权重衰减。默认值:0.0001。取值范围:[0.0, 1.0]。 |
| use_locking | bool | 可选 | 优化器中防止对变量并发更新。默认值:False。取值范围:True、False。 |
| name | string | 可选 | 优化器名称。默认值:GradientDescentByAddr。名称长度范围:[1, 200]。 |
CustomizedGradientDescentByAddr(自定义SGD地址优化器)的一个实例对象。
from mx_rec.optimizers.gradient_descent_by_addr import create_hash_optimizer_by_addr
hashtable_optimizer = create_hash_optimizer_by_addr(0.001)
LazyAdam
自定义LazyAdam优化器。
def create_hash_optimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8, name="LazyAdam", use_fusion_optim=False)
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate | float/tf.Tensor | 可选 | 学习率。默认值:0.001。取值范围:[0.0, 10.0]。 |
| beta1 | float | 可选 | 第一矩的指数衰减率估计。默认值:0.9。取值范围:(0.0, 1.0)。 |
| beta2 | float | 可选 | 第二矩的指数衰减率估计。默认值:0.999。取值范围:[0.0, 1.0]。 |
| epsilon | float | 可选 | 加入此值到分母中,提高数据稳定性。默认值:1e-8。取值范围:(0.0, 1.0]。 |
| name | string | 可选 | 优化器名称。默认值:LazyAdam。名称长度范围:[1, 200]。 |
| use_fusion_optim | bool | 可选 | 是否使用LazyAdam融合算子进行slot_m, slot_v, variable数据计算和更新。默认值:False。 取值范围: |
CustomizedLazyAdam(自定义LazyAdam优化器)的一个实例对象。
from mx_rec.optimizers.lazy_adam import create_hash_optimizer
hashtable_optimizer = create_hash_optimizer()
LazyAdamByAddress
自定义LazyAdamByAddress地址优化器。
def create_hash_optimizer_by_address(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8, name="LazyAdamByAddress")
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate | float/tf.Tensor | 可选 | 学习率。默认值:0.001。取值范围:[0.0, 10.0]。 |
| beta1 | float | 可选 | 第一矩的指数衰减率估计。默认值:0.9。取值范围:(0.0, 1.0)。 |
| beta2 | float | 可选 | 第二矩的指数衰减率估计。默认值:0.999。取值范围:[0.0, 1.0]。 |
| epsilon | float | 可选 | 加入此值到分母中,提高数据稳定性。默认值:1e-8。取值范围:(0.0, 1.0]。 |
| name | string | 可选 | 优化器名称。默认值:LazyAdamByAddress。名称长度范围:[1, 200]。 |
CustomizedLazyAdamByAddress(自定义LazyAdam地址优化器)的一个实例对象。
from mx_rec.optimizers.lazy_adam_by_addr import create_hash_optimizer_by_address
hashtable_optimizer = create_hash_optimizer_by_address()
AdagradByAddress
自定义AdagradByAddress地址优化器。
def create_hash_optimizer_by_address(learning_rate=0.001, initial_accumulator_value=0.9, name="Adagrad")
| 参数名 | 类型 | 必选/可选 | 说明 |
|---|---|---|---|
| learning_rate | float/tf.Tensor | 可选 | 学习率。默认值:0.001。取值范围:[0.0, 10.0]。 |
| initial_accumulator_value | float | 可选 | 累加器的初始值。默认值:0.9。取值范围:(0.0, 1.0]。 |
| name | string | 可选 | 优化器名称。默认值:Adagrad。名称长度范围:[1, 200]。 |
CustomizedAdagradByAddress(自定义Adagrad地址优化器)的一个实例对象。
from mx_rec.optimizers.adagrad_by_addr import create_hash_optimizer_by_address
hashtable_optimizer = create_hash_optimizer_by_address()