笔记关键词检索?

在所有笔记中搜索你感兴趣的关键词!

《Keras深度学习实战》 ──   基于TensorFlow和Theano创建神经网络

作者:[意大利] 安东尼奥·古利(Antonio Gulli),[印度] 苏伊特·帕尔(Sujit Pal) 著

知识点类型:【方法】


Keras.optimizers优化器

如何使用优化器(optimizers)
优化器是编译 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')
基类(base class)

keras.optimizers.Optimizer(**kwargs)

所有的优化器都继承自该类,支持下面的参数:

clipnorm: float >= 0

 这是用来构建优化器的基类,不是实际可以用作训练的优化器。
SGD

keras.optimizers.SGD(lr=0.01, momentum=0., decay=0., nesterov=False)

参数:

lr: float >= 0. 学习率 Learning rate
momentum: float >= 0. 参数更新动量 parameter updates momentum
decay: float >= 0. 学习率每次更新的下降率 Learning rate decay over each update
nesterov: boolean. 是否应用 Nesterov 动量 whether to apply Nesterov momentum

Adagrad

keras.optimizers.Adagrad(lr=0.01, epsilon=1e-6)

建议使用默认设置

参数:

lr: float >= 0. 学习率
epsilon: float >= 0

Adadelta

keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-6)

建议使用默认设置

参数:

lr: float >= 0. 默认设置
rho: float >= 0.
epsilon: float >= 0. Fuzz factor

RMSprop

keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-6)

建议使用默认设置

参数:

lr: float >= 0. 默认设置
rho: float >= 0.
epsilon: float >= 0. Fuzz factor

Adam

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.

 
 



............

Keras常用方法清单


常用方法清单


类型
方法
说明




模型
keras.models.Sequential()
创建顺序模型


模型
keras.models.Sequential.add()
向模型底部添加层



keras.layers.Dense()
创建全连接层


模型
keras.models.Sequential.summary()
显示模型网络摘要信息


模型
keras.models.Sequential.compile()
编译模型


模型
keras.models.Sequential.fit()
训练模型


模型
keras.models.Sequential.predict()
预测模型



keras.layers.Flatten()
展平处理


模型
keras.models.Sequential.evaluate()
模型测试


模型
keras.models.Sequential.train_on_batch()
在训练集数据的一批数据上进行训练



keras.layers.Activation()
创建激活层


公共工具
keras.utils.to_categorical()
将整型标签转为onehot



keras.layers.Dropout()
层数据丢失处理(防止过拟合)



keras.layers.Convolution2D()
二维卷积层对二维输入进行滑动窗卷积



keras.layers.MaxPooling2D()
施加最大值2D池化


模型
keras.models.Sequential.save()
保存模型


模型
keras.models.load_model()
载入模型


模型
keras.models.Sequential.save_weights()
保存模型参数


模型
keras.models.Sequential.load_weights()
载入模型参数


模型
keras.models.Sequential.to_json()
模型结构导出Json


模型
keras.models.model_from_json()
从Json载入模型结构


模型
keras.utils.vis_utils.plot_model()
绘制模型结构图



keras.layers.Input()
模型输入层定义



keras.layers.Reshape()
将输入重新调整为特定的尺寸



keras.layers.convolutional.Conv2D()
2D卷积



keras.layers.BatchNormalization()
批量标准化



keras.layers.convolutional.UpSampling2D()
2D 输入的上采样层



keras.layers.ZeroPadding2D() 
2D输入边界零填充层



keras.layers.advanced_activations.LeakyReLU()
LeakyReLU激活层



keras.layers.GlobalAveragePooling2D()
全局平均值池化



keras.layers.Embedding()
将正整数(索引值)转换为固定尺寸的稠密向量



keras.layers.Add()
两个层相加



keras.layers.DepthwiseConv2D()
深度可分离2D卷积


存储
keras.callbacks.ModelCheckpoint()
在每个训练期之后保存模型。


训练
keras.callbacks.ReduceLROnPlateau()
当标准评估停止提升时,降低学习速率。


训练
keras.callbacks.EarlyStopping()
当被监测的数量不再提升,则停止训练。


训练
keras.models.Sequential.fit_generator()
使用 Python 生成器或 Sequence 实例逐批生成的数据,按批次训练模型。



 

............