Keras澄清隐藏层的定义

时间:2019-01-27 23:53:26

标签: python keras

我正在跟踪有关在Keras中构建简单的深度神经网络的教程,提供的代码是:

# create model
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

第一行model.add是否定义了第一个隐藏层,在输入层中有8个输入?因此,除了代码input_dim=8之外,是否需要指定输入层?

1 个答案:

答案 0 :(得分:2)

你是对的。

创建Sequential模型时,输入“层” *input_diminput_shapebatch_input_shape定义。

*-输入层实际上不是一个层,而只是一个用于接收特定格式数据的“容器”。

稍后,您可能会发现使用功能性API模型而不是顺序模型非常有用。在这种情况下,您将使用以下命令定义输入张量:

inputs = Input((8,))

并将该张量传递给各层:

outputs = Dense(12, input_dim=8, activation='relu')(inputs)
outputs = Dense(8, activation='relu')(outputs)
outputs = Dense(1, activation='sigmoid')(outputs)

创建模型:

model = Model(inputs,outputs)

一开始似乎很麻烦,但是很快您就会感到需要创建分支,联接模型,拆分模型等。