Keras 顺序模型输入层

2025-03-21 09:05:00
admin
原创
22
摘要:问题描述:在 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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1911  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1430  
  在制造业数字化转型的进程中,PLM(产品生命周期管理)系统、ERP(企业资源计划)系统、MES(制造执行系统)以及 CAD(计算机辅助设计)软件都扮演着至关重要的角色。然而,这些系统和软件各自独立运行时,往往难以发挥出最大的协同效应。实现 PLM 系统与 ERP、MES、CAD 的有效集成,成为提升企业整体竞争力、优化...
plm系统的主要功能模块   22  
  产品生命周期管理(PLM)作为一种先进的管理理念和技术,在电子与半导体行业正发挥着日益重要的作用。随着电子与半导体行业的快速发展,产品更新换代速度加快,市场竞争愈发激烈,企业面临着诸多挑战,如缩短产品上市时间、提高产品质量、降低成本等。而PLM的应用为企业应对这些挑战提供了有效的解决方案,展现出巨大的应用价值。提升产品...
plm项目   18  
  PLM(产品生命周期管理)项目管理软件在现代企业的产品研发、生产与运营中扮演着至关重要的角色。它整合了从产品概念设计到退役的全流程数据与流程,助力企业提升效率、降低成本并增强创新能力。随着科技的飞速发展以及企业需求的不断演变,未来十年 PLM 项目管理软件的发展充满了无限可能,值得深入探讨与预测。智能化与自动化趋势智能...
plm产品全生命周期管理   23  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用