keras模块学习之-参数初始化与对象调用-笔记

本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作!

参数初始化(Initializations)

这个模块的作用是在添加layer时调用init进行这一层的权重初始化,有两种初始化方法,以下为样例:

model.add(Dense(64, init='uniform'))

  可以选择的初始化方法有:

uniform、lecun_uniform、normal、orthogonal、zero、glorot_normal、he_normal等

对象调用

该对象必须包含两个参数:shape(待初始化的变量的shape)和name(该变量的名字),该可调用对象必须返回一个(Keras)变量,例如K.variable()返回的就是这种变量

如:

from keras import backend as K
import numpy as np

def my_init(shape, name=None):
    value = np.random.random(shape)
    return K.variable(value, name=name)

model.add(Dense(64, init=my_init))

或者

from keras import initializations

def my_init(shape, name=None):
    return initializations.normal(shape, scale=0.01, name=name)

model.add(Dense(64, init=my_init))

  

所以说可以通过库中的方法设定每一层的初始化权重,也可以自己初始化权重,自己设定的话可以精确到每个节点的权重,那么是否可以在这儿做文章优化特征呢?我觉得可以针对不同的task深入试验看看