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列表

mxnet基础到提高(6)--梯度,反馈与标准化(归一化)相关推荐

  1. mxnet基础到提高(15)--梯度与反向传播

    #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Fri Aug 10 16:13:29 201 ...

  2. mxnet基础到提高(38)-自动梯度计算

    from mxnet import nd from mxnet import autograd import math x=nd.array([[10,20],[1,2]]) x.attach_gra ...

  3. mxnet基础到提高(51)-Activation激活函数

    mxnet.ndarray.Activation(data=None, act_type=_Null, out=None, name=None, **kwargs) Applies an activa ...

  4. mxnet基础到提高(49)-使用免费的云jupyter

    强大而免费的GOOGLE 云jupyter notebook https://colab.research.google.com/notebooks/intro.ipynb#recent=true 什 ...

  5. mxnet基础到提高(48)-ones和ones_like

    返回全1元素矩阵 mxnet.ndarray.ones(shape, ctx=None, dtype=None, **kwargs)[source] Returns a new array fille ...

  6. mxnet基础到提高(46)-ndarray.zeros,CSRNDArray稀疏矩阵

    mxnet.ndarray.zeros(shape, ctx=None, dtype=None, stype=None, **kwargs)[source] 返回一个新的array数组,指定shape ...

  7. mxnet基础到提高(44)-ndarray.arange创建行向量

    mxnet.ndarray.arange(start, stop=None, step=1.0, repeat=1, infer_range=None, ctx=None, dtype=<cla ...

  8. mxnet基础到提高(43)-编译安装

    因为pip方式安装,不能安装c++接口,此外,此方式安装的包,是使用默认参数编译的,很多运行环境要求使用指定参数编译,比如,不支持GPU,不支持SSE,还有嵌入式环境或上网本等低档设备以及端设备运行. ...

  9. mxnet基础到提高(40)-ndarray之运算(1)

    # -*- coding: utf-8 -*- """ Spyder EditorThis is a temporary script file. "" ...

最新文章

  1. 优化算法、梯度下降、SGD、Momentum、Adagrad、Adam
  2. IOS中UITableViewCell的重用机制原理
  3. 深度解读 MongoDB 4.4 新特性
  4. Spring Boot JPA中java 8 的应用
  5. 《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀
  6. Android 应用开发---Android状态栏微技巧
  7. [转]计算机语言的种类总结
  8. 忘了微信密码怎么办_微信支付密码怎么改?微信支付密码忘了怎么办?详细教程来了!...
  9. php curl上传文件$_FILES为空问题
  10. em在聊天中是什么意思_被神化的EM菌,该怎样正确使用?
  11. AngularJS 控制器 ng-controller
  12. 离散数学及其应用 第一章:集合论
  13. 关于深度学习的研究综述
  14. 大数据和云计算到底是何关系?
  15. Print Label with Barcode Using ZPLII
  16. 汽车修理厂计算机管理,最新汽车维修厂管理系统
  17. 新旧CAD图纸对比-用BCore图纸引擎1秒就能完成
  18. OpenMP编程(4)—sections、single指令
  19. Android反编译工具与实践
  20. 宏定义(无参,有参,宏函数)(详细介绍)

热门文章

  1. Python3爬虫知识点总结
  2. Scalaz(58)- scalaz-stream: fs2-并行运算示范,fs2 parallel processing
  3. windbg学习-----n(Set Number base)
  4. poj 1092 Farmland (Geometry)
  5. LINUX查看进程开始时间、结束时间、运行时间
  6. 枚举类型(C# 编程指南)
  7. P1351 联合权值
  8. RxJava系列6(从微观角度解读RxJava源码)
  9. Nodejs in Visual Studio Code 03.学习Express
  10. effective c++_【阅读笔记】Effective C++()