You need to enable JavaScript to run this app. 如何将神经网络单一层乘以实数实现指定输入归一化与下游层反归一化
优惠活动
大模型
产品
解决方案
定价
更多

如何将神经网络单一层乘以实数实现指定输入归一化与下游层反归一化

动态缩放归一化/反归一化嵌入神经网络的实现说明

完全可以将这类和输入绑定的动态归一化、反归一化计算直接嵌入神经网络模型结构中,适配你当前多输入分支的网络搭建需求

核心实现逻辑

这类计算本质是动态的无参数张量变换,不需要作为可训练参数参与反向传播,也不需要拆出模型外做前后处理,直接作为自定义计算节点嵌入即可:

  • 输入侧归一化嵌入:在对应实值输入的入口位置,接入无参数计算逻辑
    1. 对输入张量按指定统计维度计算绝对值的最大值,得到动态缩放系数n
    2. 给n增加极小的防除零偏移(如1e-8),避免输入全0时出现计算异常
    3. 执行input / (n + 1e-8)的缩放操作,将结果传递给后续连接的网络层
  • 输出侧反归一化嵌入:
    1. 计算时必须复用同批次输入侧生成的n值,不能在输出端重新计算最大值,否则会出现数值错位
    2. 在模型构建时将输入侧算出的n作为旁路张量直接接到对应输出分支,在输出位置执行output * n,即可完成反归一化操作,不需要额外存储中间变量。

多输入场景适配说明

针对你当前包含一路二值输入、其余为常规实值输入的网络结构,这类嵌入操作完全不会干扰原有分支的计算逻辑:

  • 归一化节点仅连接在需要处理的那路实值输入的直连路径上,二值输入走独立的计算分支,后续在网络的指定层做分支融合即可,不需要改动原有二值输入分支的层配置。

注意:需要提前明确n的计算维度——如果是逐样本取全局最大值,就沿样本内的所有元素维度做计算;如果是逐特征通道取最大值,就沿样本维度对每个通道单独计算最大值,确保训练和推理阶段的计算维度完全一致,避免精度偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 13:24:08