本文来自CSDN博客:http://blog.csdn.net/niuwei22007/article/details/49277595 原博客可以获取更多文章
从这篇开始介绍Keras的Layers,就是构成网络的每一层。Keras实现了很多层,包括核心层、卷基层、RNN网络层等诸多常用的网络结构。下面开介绍核心层中包含了哪些内容。因为这个核心层我现在还没有全部用到,所以会有一部分内容我并不是十分了解,因此直接附带了原文档介绍。希望有了解的博友指点一二。
一、核心层基类
keras.layers.core.Layer()
下面介绍一下该类中包含的几个基本方法。
# 把previous_layer层的输出连接到当前层的输入
set_previous(previous_layer)
返回:None
参数:
- previous_layer : Layer对象
# 获取某层网络的输出
get_output(train)
返回:Theano tensor
参数:
- train : Boolean. 指定是在训练模式下还是测试模型下计算该层的输出。Specifies whether output iscomputed in training mode or in testing mode, which can change the logic, forinstance in there are any Dropout layers in the network.
# 获取某层网络的输入
get_input(train)
返回:Theano tensor
参数:
- train : 同上。
# 获取网络的权值
get_weights()
返回 :一个numpy array组成的list,每一层的参数值是一个numpy array
# 设置网络权值参数
set_weights(weights)
参数:
- weights : 一个numpy array组成的list,每一层的权值是一个numpy array,且该list中的元素顺序要与get_weights(self)中返回的一致。(就是对应好每一层,不要打乱了顺序)
get_config()
返回 :描述网络的配置信息字典。
二、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, input_dim=None)
inputshape: 2维 tensor(nb_samples, input_dim)
outputshape: 2维 tensor(nb_samples, output_dim)
参数:
- output_dim: int >= 0,输出结果的维度
- init : 初始化权值的函数名称或Theano function。可以使用Keras内置的(内置初始化权值函数见这里),也可以传递自己编写的Theano function。如果不给weights传递参数时,则该参数必须指明。
- activation : 激活函数名称或者Theano function。可以使用Keras内置的(内置激活函数见这里),也可以是传递自己编写的Theano function。如果不明确指定,那么将没有激活函数会被应用。
- weights :用于初始化权值的numpy arrays组成的list。这个List至少有1个元素,其shape为(input_dim, output_dim)。(如果指定init了,那么weights可以赋值None)
- W_regularizer: