标签:stat 计算 相同 beta one ack std dnn global
1.attach_grad(grad_req=‘write‘,?stype=None)附加一个梯度缓存在NDArray上,这样,回退(反馈)能计算相应的梯度
参数:
grad_req?({‘write‘,?‘add‘,?‘null‘})
‘write’: 梯度将在每次回退时覆盖。
?‘add’: 梯度将在每次回退时增加到已有数据中。
‘null’: 不计算梯度
stype?(str,?optional) – 梯度存储类型,默认与NDArray相同
?
?
2.grad
返回附加在NDArray中的梯度
?
3.backward(out_grad=None,?retain_graph=False,?train_mode=True)
回退,计算NDArray关于其中的变量的梯度
Parameters:
out_grad?(NDArray,?optional) – 顶部的梯度
retain_graph?(bool,?optional) – 是否为传递到其它相同的图的回退保留计算图,默认,计算历史将被删除。train_mode?(bool,?optional) – 是否计算训练梯度或推理梯度
4.批量标准化(归一化)BatchNorm
mxnet.ndarray.BatchNorm(data=None,?gamma=None,?beta=None,?moving_mean=None,?moving_var=None,?eps=_Null,?momentum=_Null,?fix_gamma=_Null,?use_global_stats=_Null,?output_mean_var=_Null,?axis=_Null,?cudnn_off=_Null,?out=None,?name=None,?**kwargs)
通过平均值和方差来标准化(归一化)数据批,应用gamma尺度以及偏移beta。
假设输入有多于一个的维度,则标准化在axis为1进行。我们首先计算沿该轴的均值和方差
接着,计算标准化输出,尺寸与input相同,如下:
均值和var都将输入作为向量来返回标量。
假设输入在轴1上具有大小k,那么gamma和beta都具有形状(k,)。如果output_mean_var设置为true,则同时输出data_means以及data_var的倒数,这对于向后传递是必需的。注意,这两个输出的梯度被阻塞。
除了输入和输出,这个算子还接受两个辅助状态,moving_mean?和moving_var,它们是k长度向量。它们是整个数据集的全局统计信息,它们由以下更新:
moving_mean = moving_mean momentum + data_mean (1 - momentum)
moving_var = moving_var momentum + data_var (1 - momentum)
如果use_global_stats设置为true,则使用moving_mean和moving_var代替data_means和data_var来计算输出。它经常在推理过程中使用。
参数轴axis指定输入形状的哪个轴表示“通道”(分别归一化组)。默认值为1。指定- 1将通道轴axis设置为输入形状中的最后一个项。
gamma?和beta都是可学习的参数。但是如果?fix_gamma为真,则将伽玛设置为1,其梯度为0。
注意: fix_gamma为True, 不提供稀疏支持,fix_gamma为False,稀疏张量们将回退。
?
Parameters:
data?(NDArray) – 用于批量标准化的输入数据
gamma?(NDArray) – gamma数组
beta?(NDArray) – beta数组
moving_mean?(NDArray) – 输入的运行平均值
moving_var?(NDArray) – 输入的运行方差
eps?(double,?optional,?default=0.001) ?-Epsion以防止DIV 0。当使用CUDNN(通常是1E-5)时,至少必须在CUDNN.H中定义CUDNN_BN_MIN_EPSILON
momentum?(float,?optional,?default=0.9) – 移动平均动量
fix_gamma?(boolean,?optional,?default=1) – 在训练时固定伽马
use_global_stats?(boolean,?optional,?default=0) – 是否使用全局移动统计而不是本地批量范数。这将迫使batch-norm变成一个scale换算运算符。
output_mean_var?(boolean,?optional,?default=0) – 输出平均值和逆STD
axis?(int,?optional,?default=‘1‘) – 指定通道的形状轴
cudnn_off?(boolean,?optional,?default=0) – 如果有效不使用CUDNN操作。
out?(NDArray,?optional) – 输出的NDArray控制结果
Returns:
out?–函数输出
Return type:
NDArray?or ?NDArrays列表
标签:stat 计算 相同 beta one ack std dnn global
原文地址:http://blog.51cto.com/13959448/2316471