今天 ,小普分享的是Keras 中神经网络模型的 5 步生命周期。
使用 Keras 在 Python 中创建和评估深度学习神经网络非常容易,但您必须遵循严格的模型生命周期。
在这篇文章中,您将了解在 Keras 中创建、训练和评估深度学习神经网络的逐步生命周期,以及如何使用经过训练的模型进行预测。
看完这篇文章你会知道:
- 如何在 Keras 中定义、编译、拟合和评估深度学习神经网络。
- 如何为回归和分类预测建模问题选择标准默认值。
- 如何将它们结合在一起以在 Keras 中开发和运行您的第一个多层感知器网络。
概述
下面是我们将要研究的 Keras 中神经网络模型生命周期中的 5 个步骤的概述。
- 定义网络。
- 编译网络。
- 适合网络。
- 评估网络。
- 作出预测。
步骤 1. 定义网络
第一步是定义你的神经网络。
神经网络在 Keras 中被定义为一系列层。这些层的容器是 Sequential 类。
第一步是创建 Sequential 类的实例。然后,您可以创建图层并按照它们应该连接的顺序添加它们。
例如,我们可以分两步完成:
model = Sequential()
model.add(Dense(2))
但是我们也可以通过创建一个层数组并将其传递给 Sequential 的构造函数来一步完成。
layers = [Dense(2)]
model = Sequential(layers)
网络中的第一层必须定义预期的输入数量。指定的方式可能因网络类型而异,但对于多层感知器模型,这是由 input_dim 属性指定的。
例如,一个小型多层感知器模型,可见层有 2 个输入,隐藏层有 5 个神经元,输出层有一个神经元,可以定义为:
model = Sequential()
model.add(Dense(5, input_dim=2))
model.add(Dense(1))
将 Sequential 模型视为一个管道,原始数据输入在底部,预测结果在顶部。
这在 Keras 中是一个有用的概念,因为传统上与层相关的关注点也可以拆分并添加为单独的层,清楚地显示它们在从输入到预测的数据转换中的作用。例如,可以提取转换层中每个神经元的求和信号的激活函数,并将其作为称为激活的层状对象添加到序列中。
model = Sequential()
model.add(Dense(5, input_dim=2))
model.add(Activation('relu'))
model.add(Dense(1))
model.add(Activation('sigmoid'))
激活函数的选择对于输出层来说是最重要的,因为它将定义预测将采用的格式。
例如,以下