优化器optimizer:该参数可指定为已预定义的优化器名,如rmsprop
、adagrad
,或一个Optimizer
类的对象,详情见optimizers。
1、SGD
keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
随机梯度下降法,支持动量参数,支持学习衰减率,支持Nesterov动量
参数
-
lr:大或等于0的浮点数,学习率
-
momentum:大或等于0的浮点数,动量参数
-
decay:大或等于0的浮点数,每次更新后的学习率衰减值
-
nesterov:布尔值,确定是否使用Nesterov动量
RMSprop
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-06)
除学习率可调整外,建议保持优化器的其他默认参数不变
该优化器通常是面对递归神经网络时的一个良好选择
参数
-
lr:大或等于0的浮点数,学习率
-
rho:大或等于0的浮点数
-
epsilon:大或等于0的小浮点数,防止除0错误
Adagrad
keras.optimizers.Adagrad(lr=0.01, epsilon=1e-06)
建议保持优化器的默认参数不变
Adagrad
-
lr:大或等于0的浮点数,学习率
-
epsilon:大或等于0的小浮点数,防止除0错误
Adadelta
keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-06)
建议保持优化器的默认参数不变
参数
-
lr:大或等于0的浮点数,学习率
-
rho:大或等于0的浮点数
-
epsilon:大或等于0的小浮点数,防止除0错误
参考文献
Adam
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
该优化器的默认值来源于参考文献
参数
-
lr:大或等于0的浮点数,学习率
-
beta_1/beta_2:浮点数, 0<beta<1,通常很接近1
-
epsilon:大或等于0的小浮点数,防止除0错误
参考文献
Adamax
keras.optimizers.Adamax(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
Adamax优化器来自于Adam的论文的Section7,该方法是基于无穷范数的Adam方法的变体。
默认参数由论文提供
参数
-
lr:大或等于0的浮点数,学习率
-
beta_1/beta_2:浮点数, 0<beta<1,通常很接近1
-
epsilon:大或等于0的小浮点数,防止除0错误
参考文献
Nadam
keras.optimizers.Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08, schedule_decay=0.004)
Nesterov Adam optimizer: Adam本质上像是带有动量项的RMSprop,Nadam就是带有Nesterov 动量的Adam RMSprop
默认参数来自于论文,推荐不要对默认参数进行更改。
参数
-
lr:大或等于0的浮点数,学习率
-
beta_1/beta_2:浮点数, 0<beta<1,通常很接近1
-
epsilon:大或等于0的小浮点数,防止除0错误
参考文献
TFOptimizer
keras.optimizers.TFOptimizer(optimizer)
TF优化器的包装器