【Keras】Input(),Masking(),Dense()

from keras.layers import Input,Masking,Dense

接收模型的输入Input()

Input(shape=None, batch_shape=None, name=None, dtype=None, sparse=False, tensor=None)
#参数一般指定shape,name :
#shape为输入的数据的形状,name-是人为指定的输入层的名字
x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)
model = Model(x, y)

Masking层

keras.layers.core.Masking(mask_value=0.0)
使用给定的值对输入的序列信号进行“屏蔽”,用以定位需要跳过的时间步
对于输入张量的时间步,即输入张量的第1维度(维度从0开始算,见例子),如果输入张量在该时间步上都等于mask_value,则该时间步将在模型接下来的所有层(只要支持masking)被跳过(屏蔽)。
如果模型接下来的一些层不支持masking,却接受到masking过的数据,则抛出异常。
考虑输入数据x是一个形如(samples,timesteps,features)的张量,现将其送入LSTM层。因为你缺少时间步为3和5的信号,所以你希望将其掩盖。这时候应该:
赋值x[:,3,:] = 0.,x[:,5,:] = 0.

model = Sequential()
model.add(Masking(mask_value=0., input_shape=(timesteps, features)))
model.add(LSTM(32))

全连接层Dense()

keras.layers.Dense(units, 
				activation=None, 
				use_bias=True, 
				kernel_initializer='glorot_uniform', 
				bias_initializer='zeros', 
				kernel_regularizer=None, 
				bias_regularizer=None, 
				activity_regularizer=None, 
				kernel_constraint=None, 
				bias_constraint=None)

Dense 实现以下操作: output = activation(dot(input, kernel) + bias) 其中 activation 是按逐个元素计算的激活函数,kernel 是由网络层创建的权值矩阵,以及 bias 是其创建的偏置向量 (只在 use_bias 为 True 时才有用)。
注意: 如果该层的输入的秩大于2,那么它首先被展平然后 再计算与 kernel 的点乘。

# 作为 Sequential 模型的第一层
model = Sequential()
model.add(Dense(32, input_shape=(16,)))
# 现在模型就会以尺寸为 (*, 16) 的数组作为输入,
# 其输出数组的尺寸为 (*, 32)

# 在第一层之后,你就不再需要指定输入的尺寸了:
model.add(Dense(32))

你可能感兴趣的:(Keras,深度学习,神经网络,keras,深度学习)