为什么 Keras 密集层输入会意外重塑?
Keras 密集层输入中的意外重塑:揭开谜底
在 Keras 中,密集层是神经网络常用的构建块。但是,用户可能会遇到意外行为,即在应用图层操作之前输入未展平。
在提供的代码片段中:
input1 = layers.Input((2,3)) output = layers.Dense(4)(input1)
而不是使用以下方式展平输入张量 input1维度 (2,3) 中,我们令人惊讶地观察到维度为 (?, 2, 4) 的输出张量输出。这与文档中关于秩大于 2 的输入应该被展平的说法相矛盾。
然而,检查当前的 Keras 实现,揭示了不同的行为:Dense 层实际上应用于输入张量的最后一个轴。这意味着在给定的示例中,input1 的每个 2D 行都独立地通过密集连接层。因此,输出保留第一个维度,并将指定数量的单位 (4) 添加到最后一个维度。
与文档的这种背离具有重大影响:
- 等效操作多维输入上的 TimeDistributed(Dense(...)) 和 Dense(...)。
- Dense 层中各个单元共享权重矩阵。
示例:
model = Sequential() model.add(Dense(10, input_shape=(20, 5))) model.summary()
尽管密集连接层有 10 个单元,但生成的模型摘要仅显示 60 个可训练参数。这是因为每个单元以相同的权重连接到每行的 5 个元素。
视觉插图:
[图像:在Keras 中具有二维或更多维度的输入]
总之,Keras 中的 Dense 层独立应用于输入张量的最后一个轴,导致在某些场景下输出不平坦。此行为对模型设计和参数共享具有影响。
以上是为什么 Keras 密集层输入会意外重塑?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...
