我正在跟踪有关在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
之外,是否需要指定输入层?
答案 0 :(得分:2)
你是对的。
创建Sequential
模型时,输入“层” *
由input_dim
或input_shape
或batch_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)
一开始似乎很麻烦,但是很快您就会感到需要创建分支,联接模型,拆分模型等。