Keras深度学习:入门、实战与进阶
上QQ阅读APP看书,第一时间看更新

3.2.1 序贯模型

可以通过将多个层堆叠并传递给Sequential的构造函数来创建序贯模型。以下程序代码将创建一个包含四个网络层的序贯网络。

  • 第1层是全连接层(稠密层),其input_shape为(*,784),output_shape为(*,32)。
  • 第2层是激活层,将tanh激活函数用于激活输入张量,activation也可以作为参数应用于稠密层。
  • 第3层是一个稠密层,输出为(*,10)。
  • 第4层是激活层,函数为softmax。
> library(keras)
> model <- keras_model_sequential()
> model %>%
+   layer_dense(units = 32, input_shape = c(784)) %>%
+   layer_activation('relu') %>%
+   layer_dense(units = 10) %>%
+   layer_activation('softmax')
> deepviz::plot_model(model)

执行以上程序代码,得到的四层序贯模型的网络拓扑结构如图3-6所示。

072-1

图3-6 四层序贯模型的网络拓扑结构

deepviz包的安装方法将在下一节介绍。从图3-6可知,当稠密层未指定激活函数时,默认为linear。由前文可知,也可以在稠密层指定激活函数。下面我们创建一个两层序贯模型,效果与前面创建的模型相同。运行以下代码,得到两层序贯模型的网络拓扑结构,如图3-7所示。

> model1 <- keras_model_sequential()
> model1 %>%
+   layer_dense(units = 32,input_shape = c(784),activation = 'relu') %>%
+   layer_dense(units = 10,activation = 'softmax')
> deepviz::plot_model(model1)
072-2

图3-7 两层序贯模型的网络拓扑结构