《Keras深度学习实战》 ── 基于TensorFlow和Theano创建神经网络
作者:[意大利] 安东尼奥·古利(Antonio Gulli),[印度] 苏伊特·帕尔(Sujit Pal) 著
在所有笔记中搜索你感兴趣的关键词!
作者:[意大利] 安东尼奥·古利(Antonio Gulli),[印度] 苏伊特·帕尔(Sujit Pal) 著
优化器是编译 Keras 模型所需的两个参数之一:
model = Sequential()
model.add(Dense(20, 64, init='uniform'))
model.add(Activation('tanh'))
model.add(Activation('softmax'))
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
我们可以在将优化器传递给 model.compile()
之前初始化,正如上面代码所示,或者你可以直接通过名字调用。在后面的例子中,默认的优化器参数将会被使用。
# pass optimizer by name: default parameters will be used
model.compile(loss='mean_squared_error', optimizer='sgd')
keras.optimizers.Optimizer(**kwargs)
所有的优化器都继承自该类,支持下面的参数:
clipnorm: float >= 0
这是用来构建优化器的基类,不是实际可以用作训练的优化器。
keras.optimizers.SGD(lr=0.01, momentum=0., decay=0., nesterov=False)
参数:
lr
: float >= 0. 学习率 Learning ratemomentum
: float >= 0. 参数更新动量 parameter updates momentumdecay
: float >= 0. 学习率每次更新的下降率 Learning rate decay over each updatenesterov
: boolean. 是否应用 Nesterov 动量 whether to apply Nesterov momentum
keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)
建议使用默认设置
参数:
lr
: float >= 0. 学习率epsilon
: float >= 0
keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-6)
建议使用默认设置
参数:
lr
: float >= 0. 默认设置rho
: float >= 0.epsilon
: float >= 0. Fuzz factor
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-6)
建议使用默认设置
参数:
lr
: float >= 0. 默认设置rho
: float >= 0.epsilon
: float >= 0. Fuzz factor
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8, kappa=1-1e-8)
Adam 优化器由 Kingma 和 Lei Ba 在 Adam: A method for stochastic optimization。默认参数是文章中建议的。参数 lambda 在此处改做 kappa。
参数:
lr
: float >= 0. Learning rate.beta_1
, beta_2
: floats, 0 < beta < 1. Generally close to 1.epsilon
: float >= 0. Fuzz factor.kappa
: float 0 < kappa < 1. Lambda parameter in the original paper.
评论 (0)