Keras 顺序模型输入层

2025-03-21 09:05:00
admin
原创
42
摘要:问题描述:在 Keras 中创建顺序模型时,我了解到您在第一层提供输入形状。那么这个输入形状是否会形成一个隐式输入层?例如,下面的模型明确指定了 2 个 Dense 层,但这实际上是一个具有 3 层的模型,由一个由输入形状暗示的输入层、一个具有 32 个神经元的隐藏 Dense 层和一个具有 10 个可能输出...

问题描述:

在 Keras 中创建顺序模型时,我了解到您在第一层提供输入形状。那么这个输入形状是否会形成一个隐式输入层?

例如,下面的模型明确指定了 2 个 Dense 层,但这实际上是一个具有 3 层的模型,由一个由输入形状暗示的输入层、一个具有 32 个神经元的隐藏 Dense 层和一个具有 10 个可能输出的输出层组成?

model = Sequential([
    Dense(32, input_shape=(784,)),
    Activation('relu'),
    Dense(10),
    Activation('softmax'),
])

解决方案 1:

嗯,它实际上一个隐式输入层,也就是说,您的模型是一个“传统”神经网络的示例,具有三层 - 输入、隐藏和输出。这在 Keras Functional API 中更明确可见(查看文档中的示例),其中您的模型将写为:

inputs = Input(shape=(784,))                 # input layer
x = Dense(32, activation='relu')(inputs)     # hidden layer
outputs = Dense(10, activation='softmax')(x) # output layer

model = Model(inputs, outputs)

实际上,这个隐式输入层就是为什么你必须input_shape在 Sequential API 中仅在模型的第一层(显式层)中包含一个参数的原因 - 在后续层中,输入形状是从前几层的输出推断出来的(参见源代码中的注释core.py)。

您还可以找到有关启发的文档tf.contrib.keras.layers.Input

解决方案 2:

这取决于你的观点:-)

根据最新的 Keras 教程示例重写代码,您可能会使用:

model = Sequential()
model.add(Dense(32, activation='relu', input_dim=784))
model.add(Dense(10, activation='softmax')

...这更明确地表明您只有 2 个Keras层。而这正是您所拥有的(至少在 Keras 中),因为“输入层”实际上根本不是(Keras)层:它只是一个存储张量的地方,因此它本身也可能是一个张量。

每个Keras层都是一个输出张量的变换,可能与输入的大小/形状不同。因此,虽然这里有 3 个可识别的张量(输入、两个层的输出),但只涉及 2 个与 2 个 Keras 层相对应的变换。

另一方面,从图形上看,您可能用 3 个(图形)节点层和两组连接节点层的线来表示此网络。从图形上看,这是一个 3 层网络。但此图形符号中的“层”是一堆放在页面上什么也不做的圆圈,而 Keras 中的层会转换张量并为您完成实际工作。就我个人而言,我会习惯 Keras 的视角 :-)

最后请注意,为了好玩和/或简单起见,我用 来代替input_dim=784input_shape=(784,)以避免 Python 使用的语法让新手感到困惑并创建一维元组:(<value>,)

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用