You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow/Keras中Flatten层接收参数的去向及作用相关疑问

Flatten层"参数丢失"相关问题解答

核心澄清

你观察到的Flatten层参数量为0,属于Keras/TensorFlow的模型参数统计规则导致的视觉错觉,不存在参数真的丢失的情况。

1. 看似"丢失"的参数实际去向

  • 你提到的51264个参数,全部归属于输出形状为(7, 7, 64)的上游层(通常是Conv2D卷积层),保存在该层的权重变量中,没有被删除、修改或者转移。
  • 你可以通过model.layers[对应上游层的索引].get_weights()直接读取到所有51264个参数的完整数值,和是否添加Flatten层完全无关。
  • Flatten层本身没有任何可训练参数,所以model.summary()中该层的参数统计列显示为0,只是因为它不持有参数,不是上游层的参数消失了。你可以核对模型总参数量,添加Flatten层前后总参数量完全一致,都包含这51264个参数。

2. 这些参数的作用完全不受影响

  • Flatten层仅执行张量形状重排操作:将输入的(7,7,64)三维张量拉直为长度为7*7*64=3136的一维张量,全程不修改张量的数值,也不会触碰上游层的参数。
  • 推理阶段:上游层的参数正常参与特征计算,输出的特征经过Flatten拉直后输入后续全连接层,所有参数的作用完全保留。
  • 训练阶段:反向传播的梯度会经过Flatten层正常回传给上游层,更新这51264个参数,参数的训练逻辑没有任何变化。

内容的提问来源于stack exchange,提问作者Aaron_1993

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 21:15:01