Keras 顺序模型输入层

2025-03-21 09:05:00
admin
原创
62
摘要:问题描述:在 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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3970  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2740  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   79  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   87  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   74  
热门文章
项目管理软件有哪些?
曾咪二维码

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

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

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用