首页 > 后端开发 > Python教程 > 为什么 Keras 致密层保留维度?

为什么 Keras 致密层保留维度?

DDD
发布: 2024-10-21 07:52:02
原创
545 人浏览过

Why Does the Keras Dense Layer Preserve Dimensionality?

Keras 密集层输入形状难题

这个问题探讨了 Keras 文档与其密集层行为之间的明显矛盾。该文档指出,密集层在将点积与其内核应用之前会展平其输入。然而,正如提供的代码片段所示,Dense 层的输出形状似乎并未被展平。

理解行为

解决此差异的关键关键在于理解Dense层在Keras中是如何应用的。与文档相反,密集层实际上在输入张量的最后一个轴上运行。因此,在示例代码片段中,Dense 层应用于 (2,3) 输入张量的每一列,从而产生 (2, 4) 的输出形状。

含义和侧面注释

此行为具有重大影响:

  • TimeDistributed(Dense(...)) 和 Dense(...) 等价: TimeDistributed (Dense(...)) 和 Dense(...) 现在是等效的,因为两者都将 Dense 层应用于输入张量的最后一个轴。
  • 共享权重效果: Dense 层中的每个单元都以相同的权重连接到输入最后一个维度上的每个元素,因此与展平相比,参数数量更少。

视觉插图

以下视觉插图阐明了 Dense 层的行为:

[具有 (2,3) 形状的张量和应用于最后一个轴的 4 个单位的 Dense 层的图像]

密集层中的每个单元都连接到具有相同权重集的输入张量列中的每个元素。结果是形状为 (2, 4) 的输出张量。

以上是为什么 Keras 致密层保留维度?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板