权重、偏置、运行均值、运行方差的概念
debug的时候想弄清楚这些乱起八糟的数字到底是什么???
这些数字是深度学习模型中的权重(weights)和偏置(biases)参数。显示的是一个名为 VisualLayer2 的神经网络层的权重和偏置参数。这些参数是通过训练过程学习得到的,用于在模型中进行前向传播计算。
1.权重(weights):
权重是神经网络中连接不同神经元的参数,它们决定了输入信号如何影响输出信号。
VisualLayer2.bm2.weight 和 VisualLayer2.bm2.bias 分别表示该层的权重和偏置
2.偏置(biases):
偏置是加在神经元输出上的一个常数项,用于调整输出的基线。
在截图中,VisualLayer2.bm2.bias 表示该层的偏置。
权重和偏置的具体数值是通过训练过程优化得到的,它们对于模型的预测能力至关重要。通过不断调整这些参数,模型能够学习到输入数据与输出结果之间的复杂关系。
running_var 和 running_mean 是在机器学习中,特别是在使用批归一化(Batch Normalization)技术时,用来描述数据分布的两个重要统计量。
1.running_mean(运行均值):
这是对一批数据(或多批数据)的均值的估计,它在训练过程中不断更新。在批归一化中,running_mean 通常用于推理阶段(即模型评估或测试阶段),以提供对训练数据均值的平滑估计。这是因为在推理阶段,我们通常只有一个数据样本(或一个小批量),不足以准确估计均值。
running_mean 通常使用指数加权平均(Exponential Moving Average, EMA)的方法来计算,给予更近期的数据更大的权重。
2.running_var(运行方差)
类似于 running_mean,running_var 是对一批数据(或多批数据)的方差的估计。它在训练过程中同样不断更新,用于推理阶段提供对训练数据方差的平滑估计。
running_var 也通常使用指数加权平均的方法来计算,以反映最近数据的方差。
在批归一化中,running_mean 和 running_var 被用来规范化层的输入,使得输入的分布更加稳定,从而有助于加速训练过程并提高模型的泛化能力。在训练过程中,每个小批量数据的均值和方差用于归一化该批量的数据;而在推理过程中,则使用 running_mean 和 running_var 来进行归一化。