1. 所有层共有方法
- layer.get_weights() :返回层的权重( numpy array)
- layer.set_weights(weights) :从numpy array中将权重加载到该层中,要求numpy array的形状与get_weights的形状相同
- layer.get_config() :返回当前层配置信息的字典,层也可以借由配置信息重构
from keras.utils.layer_utils import layer_from_config
config = layer.get_config()
layer = layer_from_config(config)
如果层仅有一个计算节点(即该层不是共享层),则可以通过下列方法获得输入张量、输出张量、输入数据的形状和输出数据的形状:
- layer.input
- layer.output
- layer.input_shape
- layer.output_shape
- layer.get_input_at(node_index)
- layer.get_output_at(node_index)
- layer.get_input_shape_at(node_index)
- layer.get_output_shape_at(node_index)
2. 常用层
常用层对应于core模块, core内部定义了一系列常用的网络层,包括全连接、激活层等
2.1. Dense层
keras.layers.core.Dense(output_dim, init='glorot_uniform', activation='linear', weights=None, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None)
- output_dim:大于0的整数,代表该层的输出维度。模型中非首层的全连接层其输入维度可以自动推断,因此非首层的全连接定义时不需要指定输入维度。
- init:初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的Theano函数。该参数仅在不传递 weights 参数时才有意义。
- activation:激活函数,为预定义的激活函数名,或逐元素( element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数: a(x)=x)
- weights:权值,为numpy array的list。该list应含有一个形如( input_dim,output_dim)的权重矩阵和一个形如(output_dim,)的偏置向量。
- W_regularizer:施加在权重上的正则项,为WeightRegularizer对象
- b_regularizer:施加在偏置向量上的正则项,为WeightRegularizer对象
- activity_regularizer:施加在输出上的正则项,为ActivityRegularizer对象