Deep Learning With Keras 简明教程
Creating Deep Learning Model
我们的神经网络模型将包含一个线性层堆栈。要定义这样的模型,我们调用 Sequential 函数 -
model = Sequential()
Input Layer
我们的网络中使用以下程序语句定义的输入层是第一层 −
model.add(Dense(512, input_shape=(784,)))
这将创建具有 512 个节点(神经元)和 784 个输入节点的层。这在下面的图中表示 −
请注意,所有输入节点都完全连接到第 1 层,即每个输入节点都连接到第 1 层的所有 512 个节点。
接下来,我们需要添加第 1 层的输出激活函数。我们将使用 ReLU 作为我们的激活。使用以下程序语句添加激活函数 −
model.add(Activation('relu'))
接下来,我们使用下面的语句添加 20% 的 Dropout。Dropout 是一种用于防止模型过拟合的技术。
model.add(Dropout(0.2))
此时,我们的输入层已完全定义。接下来,我们将添加一个隐藏层。
Hidden Layer
我们的隐藏层将包含 512 个节点。隐藏层的输入来自我们之前定义的输入层。所有节点都完全连接,如同之前的情况一样。隐藏层的输出将进入网络中的下一层,它将成为我们的最终输出层。我们将使用与前一层相同的 ReLU 激活,并且 Dropout 为 20%。在此处给出添加此层的代码 −
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.2))
此时,网络可以可视化为以下内容 −
接下来,我们将向我们的网络添加最终层,即输出层。请注意,您可以使用与此处使用的类似代码添加任意数量的隐藏层。添加更多层会使网络难以训练;然而,在很多情况下(尽管不是全部)给出了更好的结果的明确优势。