from keras.optimizers import Adam, SGD
1.Keras参数optimizers定义:optimizer是优化器(优化参数的算法)
可用的优化器:
1.SGD(随机梯度下降)
from keras.optimizers import SGD
sgd = SGD(lr=0.01,momentum=0,decay=0,nesterov=False)
lr:学习率 momentum:动量参数
decay:(每次更新)学习率的衰减值
nesterov:是否使用Nesterov动量5.Adam(自适应移动估计=RMSprop+momentum)
from keras.optimizers import Adam
adam = Adam(lr=0.001,beta_1=0.9,beta_2=0.999,epsilon=None,decay=0,amsgrad=False)
tip:该算法是面对反馈神经网络的良好选择2.RMSprop(均方根反向传播)
from keras.optimizers import RMSprop
rmsprop = RMSprop(lr=0.001,rho=0.9,epsilon=None,decay=0)
lr:学习率 rho:衰减因子
epsilon:模糊因子 decay:(每次更新)学习率的衰减值
tip:该算法是面对递归神经网络RNN的良好选择,实际调参时只调整lr即可3.Adagrad(自适应梯度)
from keras.optimizers import Adagrad
adagrad = Adagrad(lr=0.01,epsilon=None,decay=0)
lr:学习率 epsilon:模糊因子 decay:(每次更新)学习率的衰减值
tip:该算法建议保持默认参数4.Adadelta(Adagrad的改进)
from keras.optimizers import Adadelta
adadelta = Adadelta(lr=0.01,rho=0.95,epsilon=None,decay=0)
lr:学习率 rho:衰减因子
epsilon:模糊因子 decay:(每次更新)学习率的衰减值
tip:该算法建议保持默认参数
from keras.layers import Input, Convolution2D, MaxPooling2D, UpSampling2D, merge, Conv3D, MaxPooling3D, UpSampling3D, LeakyReLU, BatchNormalization, Flatten, Dense, Dropout, ZeroPadding3D, AveragePooling3D, Activation(解释略过)
from keras.models import Model, load_model, model_from_json
2.keras中的模型主要包括model和weight两个部分。可通过Json文件、Yaml文件、HDF5文件保存
from keras.metrics import binary_accuracy, binary_crossentropy, mean_squared_error, mean_absolute_error
3.Keras评估标准Metrics
作用:评估函数用于评估当前训练模型的性能。当模型编译后,评价函数应该作为metrics的参数输入
from keras import metrics
model.compile(loss='mean_squared_error',
optimizer='sgd',
metrics=[metrics.mae, metrics.categorical_accuracy])
评价函数和损失函数类似,只不过评价函数的结果不会用于训练过程。
一般类评估
- binary_accuracy
binary_accuracy(y_true,y_pred)
对二分类问题,计算在所有预测值上的平均正确率 - categorical_accuracy
对多分类问题,计算在所有预测值上的平均正确率 - mean_square_error
MSE均方误差 - mean_absolute_error
MSE 平均绝对误差 - mean_absolute_percentage_error
MAPE 平均绝对百分比误差 - mean_square_logarithmic_error
MSLE 均方对数误差 - hinge
铰链误差 - square_hinge
- binary_crossentropy
交叉熵是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距。 - categorical_crossentropy
多分类交叉熵 - possion
泊松损失 - cosine_proximity
用预先来判断两个向量的相似度
稀疏类评估
- sparse_categorocal_accuracy
与catrgorical_accuracy相同,在对稀疏的目标预测时有用 - sparse_categorical_crossentropy
与categorical_crossentropy 相同,在对稀疏的目标值预测时有用 - sparse_top_k_categorical_accuracy
自定义评价函数
模糊评估 - top_k_categorical_accracy
计算top_k 正确率,当预测值的前K个值存在目标类别即认为预测正确
参考链接:
from keras import backend as K
from keras.callbacks import ModelCheckpoint, Callback, LearningRateScheduler, History, TensorBoard
from keras.constraints import maxnorm