keras - 了解批量归一化参数模型输出
问题描述
根据上图使用 keras 创建模型后,我有以下模型参数
我的问题是批量归一化 1 的参数如何得到 784。据我了解,批量归一化有两个参数,由于我们有 196 个过滤器,我的理解是我们应该有 196 * 2 = 392,但模型输出显示为 784。我不明白这个值是怎么来的?请求提供关于我们如何获得这个值的直觉?
另一个问题是我们如何计算 GRU 单元的批量标准化,我们得到 batch_normalization 2 有 512 个参数。据我了解,GRU 具有三个非线性函数,用于更新门、相关门和计算新单元格值。所以这里我们应该有 128 * 3 = 384,但是模型输出为 512。这个值是怎么来的?
感谢您的时间和指导。
解决方案
Batch Normalization 的参数数量是指定归一化轴上输入维数的四倍(默认为最后一个)。这对应于 gamma 和 beta 参数,以及移动均值和移动方差。您可以在keras 的源代码中确认这一点。
要获得 784 个 BN 参数,您的维度为 784 / 4 = 196 个元素,对应于第一个 BN 层之前的层。对于 GRU 层,BN 有 128 个输入维度,需要 128 x 4 = 512 个参数。
推荐阅读
- javascript - 是否可以录制 HTML 元素内容的视频?
- fido-u2f - WebAuthn / FIDO2 证明对象和客户端数据 JSON 示例
- c# - 如何在 Visual Studio 中将 Oracle 用户定义类型导出为 C# 类?
- kubernetes - 如何检查使用 Kubernetes 部署的 pod 的容器的内容
- javascript - 如何将数据提供给正在运行的生成器?
- angular8 - Angular 8 中的依赖注入
- hibernate - 如何使用多对一关系从 mysql 数据库中获取没有主键实体
- python - Codecademy 的 Python 3 模块中 Sal 的 Shipping 问题
- abap - ABAP 7.02 中 2 个表的左连接
- python - 如何使用值搜索单元格并获取索引号