Keras中layers.Dense()(input_layer)是何含义?该模型是否为Sequential模型?
解答
(input_layer)的含义
这是Keras函数式API的标准写法:
layers.Dense(100, activation="relu")会先创建一个配置好神经元数量、激活函数的全连接层实例,此时还没有绑定具体输入。- Keras中的所有层对象都是可调用的,后缀的
(input_layer)表示将输入张量input_layer传入这个全连接层,层内部完成线性变换、激活函数计算后返回输出张量,最终赋值给变量hidden_layer。
对应的等价分步写法:
# 实例化全连接层 dense_layer = layers.Dense(100, activation="relu") # 传入输入张量,得到隐藏层输出 hidden_layer = dense_layer(input_layer)
该方式构建的是否为Sequential模型
不是Sequential(顺序)模型。
- 示例代码使用的是Keras 函数式API(Functional API):通过显式给层传入输入张量得到输出张量,最终调用
models.Model()并指定整体的输入、输出张量完成模型构建。 - Sequential是Keras提供的线性层堆叠容器,仅支持单输入单输出的直线型网络,需要通过
.add()方法逐层添加网络层,和示例的构建逻辑完全不同。 - 即使本例的网络拓扑本身是线性串联的,只要采用上述显式传递张量的写法,就属于函数式模型。函数式API灵活性更强,可支持多输入多输出、残差连接、层共享等复杂网络结构。
内容的提问来源于stack exchange,提问作者Pearl
相关产品推荐
相关产品推荐

