LeakyReLU和tensorboard的使用
LeakyReLU的使用
ReLU及其变种作为非饱和激活函数,相对饱和激活函数sigmoid和tanh而言,可以解决梯度消失和加快收敛速度。
大部分激活函数都可以直接在model.add中的activation一项中直接调用,但是LeakyReLU和PReLU这样的复杂激活函数则需要用add方法来将其作为layer来使用。
from keras.layers import LeakyReLU
model.add(Conv2D(filters=32,kernel_size=(5,1),
strides=1,
input_shape=(12,4096,1),
# activation='tanh',
# padding='same',
name='Conv_1'))
model.add(LeakyReLU(alpha=0.25))
这样才是正确的调用方法。
需要注意的是,alpha作为LeakyReLU在x<0时的斜率,并非越大越好,而是一定范围内越小可能效果越佳。
可以这样理解,如果斜率在(0,1)内,越往1靠近,那么非线性程度就越小,效果反而未必好。
TensorBoard的使用
先import TensorBoard
> from keras.callbacks import TensorBoard
然后定义callback
> tbCallBack = TensorBoard(log_dir=‘./logs’,
histogram_freq=1,
batch_size=16,
write_graph=False,
write_grads=True,
write_images=False,
embeddings_freq=0,
embeddings_layer_names=None,
embeddings_metadata=None)
之后在fit的时候加入callback=[tbCallBack]即可。
最后在命令行窗口cd到工作目录,输入tensorboard –logdir ./logs即可 > tensorboard –logdir ./logs