1. compile参数介绍
model.compile(
optimizer,
loss = None,
metrics = None,
loss_weights = None,
sample_weight_mode = None,
weighted_metrics = None,
target_tensors = None
)
optimizer:优化器,用于控制梯度裁剪。必选项loss:损失函数(或称目标函数、优化评分函数)。必选项metrics:评价函数用于评估当前训练模型的性能。当模型编译后(compile),评价函数应该作为 metrics 的参数来输入。评价函数和损失函数相似,只不过评价函数的结果不会用于训练过程中。
在使用过程中常用的就是这三个参数。
1. optimizer
- 可以先实例化一个优化器对象,然后将它传入 model.compile();
from keras import optimizers model = Sequential() model.add(Dense(64, kernel_initializer='uniform', input_shape=(10,))) model.add(Activation('softmax')) sgd = optimizers.SGD(lr=0.01, clipvalue=0.5) model.compile(optimizer=sgd,loss='mse') - 可以通过名称来调用优化器。但是使用优化器的默认参数。
# 传入优化器名称: 默认参数将被采用 model.compile(loss='mean_squared_error', optimizer='sgd')
1.1 optimizer可用参数-SGD
SGD: 随 机 梯 度 下 降 优 化 器 \color{blue}随机梯度下降优化器 随机梯度下降优化器。包含扩展功能的支持:
- 学习率learning rate (lr)
- 动量(momentum)优化,
- 学习率衰减(每次参数更新后)
- Nestrov 动量 (NAG) 优化。
lr: float >= 0. 学习率。momentum: float>= 0. 参数,用于加速 SGD 在相关方向上前进,并抑制震荡。decay: float >= 0. 每次参数更新后学习率衰减值。nesterov: boolean. 是否使用 Nesterov 动量。例如:
python keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
1.2 optimizer可用参数-RMSprop
- RMSprop:RMSProp 优化器是AdaGrad算法的一种改进。 将 梯 度 除 以 最 近 幅 度 的 移 动 平 均 值 \color{blue}将梯度除以最近幅度的移动平均值 将梯度除以最近幅度的移动平均值。
lr: float >= 0. 学习率。rho: float >= 0. RMSProp梯度平方的移动均值的衰减率.epsilon: float >= 0. 模糊因子. 若为 None, 默认为 K.epsilon()。decay: float >= 0. 每次参数更新后学习率衰减值。
例如:
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=None, decay=0.0) - 这个优化器通常是训练循环神经网络 R N N 的 不 错 选 择 \color{blue}RNN的不错选择 RNN的不错选择。参考文献
1.3 optimizer可用参数 - Adagrad
-
Adagrad 是一种具有特定参数学习率的优化器, 根 据 参 数 在 训 练 期 间 的 更 新 频 率 进 行 自 适 应 调 整 \color{blue}根据参数在训练期间的更新频率进行自适应调整

本文详细介绍Keras编译函数model.compile中的关键参数,如优化器SGD、RMSprop、Adam等的使用方法,以及loss函数如MSE、CE的选择。同时涵盖内置评价函数和自定义评价函数的设置。

7616

被折叠的 条评论
为什么被折叠?



