文档反馈

问题文档片段

问题文档片段包含公式时,显示为空格。

提交类型
issue

有点复杂...

找人问问吧。

请选择提交类型

问题类型
规范和低错类

- 规范和低错类:

- 错别字或拼写错误,标点符号使用错误、公式错误或显示异常。

- 链接错误、空单元格、格式错误。

- 英文中包含中文字符。

- 界面和描述不一致,但不影响操作。

- 表述不通顺,但不影响理解。

- 版本号不匹配:如软件包名称、界面版本号。

易用性

- 易用性:

- 关键步骤错误或缺失,无法指导用户完成任务。

- 缺少主要功能描述、关键词解释、必要前提条件、注意事项等。

- 描述内容存在歧义指代不明、上下文矛盾。

- 逻辑不清晰,该分类、分项、分步骤的没有给出。

正确性

- 正确性:

- 技术原理、功能、支持平台、参数类型、异常报错等描述和软件实现不一致。

- 原理图、架构图等存在错误。

- 命令、命令参数等错误。

- 代码片段错误。

- 命令无法完成对应功能。

- 界面错误,无法指导操作。

- 代码样例运行报错、运行结果不符。

风险提示

- 风险提示:

- 对重要数据或系统存在风险的操作,缺少安全提示。

内容合规

- 内容合规:

- 违反法律法规,涉及政治、领土主权等敏感词。

- 内容侵权。

请选择问题类型

问题描述

点击输入详细问题描述,以帮助我们快速定位问题。

mindspore.ops.LARSUpdate

class mindspore.ops.LARSUpdate(epsilon=1e-05, hyperpara=0.001, use_clip=False)[源代码]

对梯度的平方和应用LARS(layer-wise adaptive rate scaling)算法。

更多细节请参考 mindspore.nn.LARS

参数:
  • epsilon (float) - 添加在分母中,提高数值稳定性。默认值:1e-05。

  • hyperpara (float) - 计算局部学习率的信任系数。默认值:0.001。

  • use_clip (bool) - 计算局部学习速率时是否裁剪。默认值:False。

输入:
  • weight (Tensor) - 权重Tensor,shape: (N,) ,其中 表示任意数量的附加维度。

  • gradient (Tensor) - weight 的梯度,与 weight 的shape和数据类型相同。

  • norm_weight (Tensor) - 标量Tensor,权重的平方和。

  • norm_gradient (Tensor) - 标量Tensor,梯度的平方和。

  • weight_decay (Union[Number, Tensor]) - 衰减率。必须为标量Tensor或Number。

  • learning_rate (Union[Number, Tensor]) - 学习率。必须为标量Tensor或Number。

输出:

Tensor,计算后的梯度。

异常:
  • TypeError - epsilonhyperpara 不是float类型。

  • TypeError - use_clip 不是bool类型。

  • TypeError - weightgradientnorm_weightnorm_gradient 不是Tensor。

  • TypeError - weight_decaylearning_rate 非Number或Tensor。

  • TypeError - gradientweight 的shape不同。

支持平台:

Ascend

样例:

>>> class Net(nn.Cell):
...     def __init__(self):
...         super(Net, self).__init__()
...         self.lars = ops.LARSUpdate()
...         self.reduce = ops.ReduceSum()
...         self.square = ops.Square()
...     def construct(self, weight, gradient):
...         w_square_sum = self.reduce(self.square(weight))
...         grad_square_sum = self.reduce(self.square(gradient))
...         grad_t = self.lars(weight, gradient, w_square_sum, grad_square_sum, 0.0, 1.0)
...         return grad_t
...
>>> weight = Tensor(np.array([[0.5, 0.8, 0.2], [0.6, 0.4, 0.2]]).astype(np.float32))
>>> gradient = Tensor(np.array([[0.4, 0.4, 0.5], [0.2, 0.4, 0.3]]).astype(np.float32))
>>> net = Net()
>>> output = net(Tensor(weight), Tensor(gradient))
>>> print(output)
[[0.0005265  0.0005265 0.00065813]
 [0.00026325 0.0005265 0.00039488]]