add removed api files.
This commit is contained in:
parent
4f1968a829
commit
8f2457a0f8
|
@ -0,0 +1,84 @@
|
|||
mindspore.nn.Adagrad
|
||||
=====================
|
||||
|
||||
.. py:class:: mindspore.nn.Adagrad(*args, **kwargs)
|
||||
|
||||
使用ApplyAdagrad算子实现Adagrad算法。
|
||||
|
||||
Adagrad用于在线学习和随机优化。
|
||||
请参阅论文`Efficient Learning using Forward-Backward Splitting <https://proceedings.neurips.cc/paper/2009/file/621bf66ddb7c962aa0d22ac97d69b793-Paper.pdf>`_。
|
||||
公式如下:
|
||||
|
||||
.. math::
|
||||
\begin{array}{ll} \\
|
||||
h_{t+1} = h_{t} + g\\
|
||||
w_{t+1} = w_{t} - lr*\frac{1}{\sqrt{h_{t+1}}}*g
|
||||
\end{array}
|
||||
|
||||
:math:`h` 表示梯度平方的累积和,:math:`g` 表示 `grads` 。
|
||||
:math:`lr` 代表 `learning_rate`,:math:`w` 代表 `params` 。
|
||||
|
||||
.. note::
|
||||
在参数未分组时,优化器配置的 `weight_decay` 应用于名称含有"beta"或"gamma"的网络参数,通过网络参数分组可调整权重衰减策略。分组时,每组网络参数均可配置 `weight_decay` ,若未配置,则该组网络参数使用优化器中配置的 `weight_decay` 。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **params** (Union[list[Parameter], list[dict]]) - 必须是 `Parameter` 组成的列表或字典组成的列表。当列表元素是字典时,字典的键可以是"params"、"lr"、"weight_decay"、"grad_centralization"和"order_params":
|
||||
|
||||
.. include:: mindspore.nn.optim_group_param.rst
|
||||
.. include:: mindspore.nn.optim_group_lr.rst
|
||||
.. include:: mindspore.nn.optim_group_weight_decay.rst
|
||||
.. include:: mindspore.nn.optim_group_gc.rst
|
||||
.. include:: mindspore.nn.optim_group_order.rst
|
||||
|
||||
- **accum** (float) - 累加器 :math:`h` 的初始值,必须大于等于零。默认值:0.1。
|
||||
- **learning_rate** (Union[float, Tensor, Iterable, LearningRateSchedule]) - 默认值:0.001。
|
||||
.. include:: mindspore.nn.optim_arg_dynamic_lr.rst
|
||||
|
||||
- **update_slots** (bool) - 如果为True,则更新累加器 :math:`h` 。默认值:True。
|
||||
|
||||
.. include:: mindspore.nn.optim_arg_loss_scale.rst
|
||||
|
||||
- **weight_decay** (Union[float, int]) - 要乘以权重的权重衰减值,必须大于等于0.0。默认值:0.0。
|
||||
|
||||
**输入:**
|
||||
|
||||
**grads** (tuple[Tensor]) - 优化器中 `params` 的梯度,形状(shape)与 `params` 相同。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor[bool],值为True。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `learning_rate` 不是int、float、Tensor、Iterable或 `LearningRateSchedule` 。
|
||||
- **TypeError** - `parameters` 的元素是 `Parameter` 或字典。
|
||||
- **TypeError** - `accum` 或 `loss_scale` 不是float。
|
||||
- **TypeError** - `update_slots` 不是bool。
|
||||
- **TypeError** - `weight_decay` 不是float或int。
|
||||
- **ValueError** - `loss_scale` 小于或等于0。
|
||||
- **ValueError** - `accum` 或 `weight_decay` 小于0。
|
||||
|
||||
**支持平台:**
|
||||
|
||||
``Ascend`` ``CPU`` ``GPU``
|
||||
|
||||
**样例:**
|
||||
|
||||
>>> net = Net()
|
||||
>>> #1) 所有参数使用相同的学习率和权重衰减
|
||||
>>> optim = nn.Adagrad(params=net.trainable_params())
|
||||
>>>
|
||||
>>> #2) 使用参数组并设置不同的值
|
||||
>>> conv_params = list(filter(lambda x: 'conv' in x.name, net.trainable_params()))
|
||||
>>> no_conv_params = list(filter(lambda x: 'conv' not in x.name, net.trainable_params()))
|
||||
>>> group_params = [{'params': conv_params, 'weight_decay': 0.01, 'grad_centralization':True},
|
||||
... {'params': no_conv_params, 'lr': 0.01},
|
||||
... {'order_params': net.trainable_params()}]
|
||||
>>> optim = nn.Adagrad(group_params, learning_rate=0.1, weight_decay=0.0)
|
||||
>>> # conv_params参数组将使用优化器中的学习率0.1、该组的权重衰减0.01、该组的梯度中心化配置True。
|
||||
>>> # no_conv_params参数组将使用该组的学习率0.01、优化器中的权重衰减0.0、梯度中心化使用默认值False。
|
||||
>>> # 优化器按照"order_params"配置的参数顺序更新参数。
|
||||
>>>
|
||||
>>> loss = nn.SoftmaxCrossEntropyWithLogits()
|
||||
>>> model = Model(net, loss_fn=loss, optimizer=optim)
|
|
@ -0,0 +1,94 @@
|
|||
mindspore.nn.Adam
|
||||
==================
|
||||
|
||||
.. py:class:: mindspore.nn.Adam(*args, **kwargs)
|
||||
|
||||
通过Adaptive Moment Estimation (Adam)算法更新梯度。
|
||||
|
||||
请参阅论文`Adam: A Method for Stochastic Optimization <https://arxiv.org/abs/1412.6980>`_。
|
||||
|
||||
公式如下:
|
||||
|
||||
.. math::
|
||||
\begin{array}{ll} \\
|
||||
m_{t+1} = \beta_1 * m_{t} + (1 - \beta_1) * g \\
|
||||
v_{t+1} = \beta_2 * v_{t} + (1 - \beta_2) * g * g \\
|
||||
l = \alpha * \frac{\sqrt{1-\beta_2^t}}{1-\beta_1^t} \\
|
||||
w_{t+1} = w_{t} - l * \frac{m_{t+1}}{\sqrt{v_{t+1}} + \epsilon}
|
||||
\end{array}
|
||||
|
||||
:math:`m` 代表第一个动量矩阵 `moment1` ,:math:`v` 代表第二个动量矩阵 `moment2` ,:math:`g` 代表 `gradients` ,:math:`l` 代表缩放因子,:math:`\beta_1,\beta_2` 代表 `beta1` 和 `beta2` ,:math:`t` 代表当前step,:math:`beta_1^t` 和:math:`beta_2^t` 代表 `beta1_power` 和 `beta2_power` ,:math:`\alpha` 代表 `learning_rate` ,:math:`w` 代表 `params` ,:math:`\epsilon` 代表 `eps` 。
|
||||
|
||||
.. note::
|
||||
.. include:: mindspore.nn.optim_note_sparse.rst
|
||||
|
||||
.. include:: mindspore.nn.optim_note_weight_decay.rst
|
||||
|
||||
**参数:**
|
||||
|
||||
- **params** (Union[list[Parameter], list[dict]]) - 必须是 `Parameter` 组成的列表或字典组成的列表。当列表元素是字典时,字典的键可以是"params"、"lr"、"weight_decay"、"grad_centralization"和"order_params":
|
||||
|
||||
.. include:: mindspore.nn.optim_group_param.rst
|
||||
.. include:: mindspore.nn.optim_group_lr.rst
|
||||
.. include:: mindspore.nn.optim_group_weight_decay.rst
|
||||
.. include:: mindspore.nn.optim_group_gc.rst
|
||||
.. include:: mindspore.nn.optim_group_order.rst
|
||||
|
||||
- **learning_rate** (Union[float, Tensor, Iterable, LearningRateSchedule]): 默认值:1e-3。
|
||||
|
||||
.. include:: mindspore.nn.optim_arg_dynamic_lr.rst
|
||||
|
||||
- **beta1** (float) - `moment1` 的指数衰减率。参数范围(0.0,1.0)。默认值:0.9。
|
||||
- **beta2** (float) - `moment2` 的指数衰减率。参数范围(0.0,1.0)。默认值:0.999。
|
||||
- **eps** (float) - 将添加到分母中,以提高数值稳定性。必须大于0。默认值:1e-8。
|
||||
- **use_locking** (bool) - 是否对参数更新加锁保护。如果为True,则 `w` 、`m` 和 `v` 的tensor更新将受到锁的保护。如果为False,则结果不可预测。默认值:False。
|
||||
- **use_nesterov** (bool) - 是否使用Nesterov Accelerated Gradient (NAG)算法更新梯度。如果为True,使用NAG更新梯度。如果为False,则在不使用NAG的情况下更新梯度。默认值:False。
|
||||
- **weight_decay** (float) - 权重衰减(L2 penalty)。必须大于等于0。默认值:0.0。
|
||||
|
||||
.. include:: mindspore.nn.optim_arg_loss_scale.rst
|
||||
|
||||
**输入:**
|
||||
|
||||
**gradients** (tuple[Tensor]) - `params` 的梯度,形状(shape)与 `params` 相同。
|
||||
|
||||
**输出:**
|
||||
|
||||
Tensor[bool],值为True。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `learning_rate` 不是int、float、Tensor、Iterable或LearningRateSchedule。
|
||||
- **TypeError** - `parameters` 的元素不是Parameter或字典。
|
||||
- **TypeError** - `beta1` 、`beta2` 、 `eps` 或 `loss_scale` 不是float。
|
||||
- **TypeError** - `weight_decay` 不是float或int。
|
||||
- **TypeError** - `use_locking` 或 `use_nesterov` 不是bool。
|
||||
- **ValueError** - `loss_scale` 或 `eps` 小于或等于0。
|
||||
- **ValueError** - `beta1` 、`beta2` 不在(0.0,1.0)范围内。
|
||||
- **ValueError** - `weight_decay` 小于0。
|
||||
|
||||
**支持平台:**
|
||||
|
||||
``Ascend`` ``GPU`` ``CPU``
|
||||
|
||||
**样例:**
|
||||
|
||||
>>> net = Net()
|
||||
>>> #1) 所有参数使用相同的学习率和权重衰减
|
||||
>>> optim = nn.Adam(params=net.trainable_params())
|
||||
>>>
|
||||
>>> #2) 使用参数组并设置不同的值
|
||||
>>> conv_params = list(filter(lambda x: 'conv' in x.name, net.trainable_params()))
|
||||
>>> no_conv_params = list(filter(lambda x: 'conv' not in x.name, net.trainable_params()))
|
||||
>>> group_params = [{'params': conv_params, 'weight_decay': 0.01, 'grad_centralization':True},
|
||||
... {'params': no_conv_params, 'lr': 0.01},
|
||||
... {'order_params': net.trainable_params()}]
|
||||
>>> optim = nn.Adam(group_params, learning_rate=0.1, weight_decay=0.0)
|
||||
>>> # conv_params参数组将使用优化器中的学习率0.1、该组的权重衰减0.01、该组的梯度中心化配置True。
|
||||
>>> # no_conv_params参数组将使用该组的学习率0.01、优化器中的权重衰减0.0、梯度中心化使用默认值False。
|
||||
>>> # 优化器按照"order_params"配置的参数顺序更新参数。
|
||||
>>>
|
||||
>>> loss = nn.SoftmaxCrossEntropyWithLogits()
|
||||
>>> model = Model(net, loss_fn=loss, optimizer=optim)
|
||||
|
||||
|
||||
.. include:: mindspore.nn.optim_target_unique_for_sparse.rst
|
|
@ -0,0 +1,76 @@
|
|||
mindspore.nn.Metric
|
||||
====================
|
||||
|
||||
.. py:class:: mindspore.nn.Metric
|
||||
|
||||
用于计算评估指标的基类。
|
||||
|
||||
在计算评估指标时需要调用 `clear` 、 `update` 和 `eval` 三个方法,在继承该类自定义评估指标时,也需要实现这三个方法。其中,`update` 用于计算中间过程的内部结果,`eval` 用于计算最终评估结果,`clear` 用于重置中间结果。
|
||||
请勿直接使用该类,需使用子类如 :class:`mindspore.nn.MAE` 、 :class:`mindspore.nn.Recall` 等。
|
||||
|
||||
.. py:method:: clear()
|
||||
:abstract:
|
||||
|
||||
描述了清除内部评估结果的行为。
|
||||
|
||||
.. note::
|
||||
所有子类都必须重写此接口。
|
||||
|
||||
.. py:method:: eval()
|
||||
:abstract:
|
||||
|
||||
描述了计算最终评估结果的行为。
|
||||
|
||||
.. note::
|
||||
所有子类都必须重写此接口。
|
||||
|
||||
.. py:method:: indexes
|
||||
:property:
|
||||
|
||||
获取当前的 `indexes` 值。默认为None,调用 `set_indexes` 可修改 `indexes` 值。
|
||||
|
||||
.. py:method:: set_indexes(indexes)
|
||||
|
||||
该接口用于重排 `update` 的输入。
|
||||
|
||||
给定(label0, label1, logits)作为 `update` 的输入,将 `indexes` 设置为[2, 1],则最终使用(logits, label1)作为 `update` 的真实输入。
|
||||
|
||||
.. note::
|
||||
在继承该类自定义评估函数时,需要用装饰器 `mindspore.nn.rearrange_inputs` 修饰 `update` 方法,否则配置的 `indexes` 值不生效。
|
||||
|
||||
|
||||
**参数:**
|
||||
|
||||
**indexes** (List(int)) - logits和标签的目标顺序。
|
||||
|
||||
**输出:**
|
||||
|
||||
:class:`Metric` ,类实例本身。
|
||||
|
||||
**样例:**
|
||||
|
||||
>>> import numpy as np
|
||||
>>> from mindspore import nn, Tensor
|
||||
>>>
|
||||
>>> x = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]]))
|
||||
>>> y = Tensor(np.array([1, 0, 1]))
|
||||
>>> y2 = Tensor(np.array([0, 0, 1]))
|
||||
>>> metric = nn.Accuracy('classification').set_indexes([0, 2])
|
||||
>>> metric.clear()
|
||||
>>> # indexes为[0, 2],使用x作为预测值,y2作为真实标签
|
||||
>>> metric.update(x, y, y2)
|
||||
>>> accuracy = metric.eval()
|
||||
>>> print(accuracy)
|
||||
0.3333333333333333
|
||||
|
||||
.. py:method:: update(*inputs)
|
||||
:abstract:
|
||||
|
||||
描述了更新内部评估结果的行为。
|
||||
|
||||
.. note::
|
||||
所有子类都必须重写此接口。
|
||||
|
||||
**参数:**
|
||||
|
||||
**inputs** - 可变长度输入参数列表。通常是预测值和对应的真实标签。
|
|
@ -0,0 +1,89 @@
|
|||
mindspore.nn.Momentum
|
||||
======================
|
||||
|
||||
.. py:class:: mindspore.nn.Momentum(*args, **kwargs)
|
||||
|
||||
Momentum算法优化器。
|
||||
|
||||
有关更多详细信息,请参阅论文 `On the importance of initialization and momentum in deep learning <https://dl.acm.org/doi/10.5555/3042817.3043064>`_。
|
||||
|
||||
.. math::
|
||||
v_{t+1} = v_{t} \ast u + grad
|
||||
|
||||
如果 `use_nesterov` 为True:
|
||||
|
||||
.. math::
|
||||
p_{t+1} = p_{t} - (grad \ast lr + v_{t+1} \ast u \ast lr)
|
||||
|
||||
如果 `use_nesterov` 为False:
|
||||
|
||||
.. math::
|
||||
p_{t+1} = p_{t} - lr \ast v_{t+1}
|
||||
|
||||
其中,:math:`grad` 、:math:`lr` 、:math:`p` 、:math:`v` 和:math:`u` 分别表示梯度、学习率、参数、矩(Moment)和动量(Momentum)。
|
||||
|
||||
.. note::
|
||||
.. include:: mindspore.nn.optim_note_weight_decay.rst
|
||||
|
||||
**参数:**
|
||||
|
||||
- **params** (Union[list[Parameter], list[dict]]): 必须是 `Parameter` 组成的列表或字典组成的列表。当列表元素是字典时,字典的键可以是"params"、"lr"、"weight_decay"、"grad_centralization"和"order_params":
|
||||
|
||||
.. include:: mindspore.nn.optim_group_param.rst
|
||||
.. include:: mindspore.nn.optim_group_lr.rst
|
||||
.. include:: mindspore.nn.optim_group_weight_decay.rst
|
||||
.. include:: mindspore.nn.optim_group_gc.rst
|
||||
.. include:: mindspore.nn.optim_group_order.rst
|
||||
|
||||
- **learning_rate** (Union[float, int, Tensor, Iterable, LearningRateSchedule]):
|
||||
|
||||
.. include:: mindspore.nn.optim_arg_dynamic_lr.rst
|
||||
|
||||
- **momentum** (float) - 浮点数类型的超参,表示移动平均的动量。必须等于或大于0.0。
|
||||
- **weight_decay** (int, float) - 权重衰减(L2 penalty)值。必须大于等于0.0。默认值:0.0。
|
||||
|
||||
.. include:: mindspore.nn.optim_arg_loss_scale.rst
|
||||
|
||||
- **use_nesterov** (bool) - 是否使用Nesterov Accelerated Gradient (NAG)算法更新梯度。默认值:False。
|
||||
|
||||
**输入:**
|
||||
|
||||
**gradients** (tuple[Tensor]) - `params` 的梯度,形状(shape)与 `params` 相同。
|
||||
|
||||
**输出:**
|
||||
|
||||
tuple[bool],所有元素都为True。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `learning_rate` 不是int、float、Tensor、Iterable或LearningRateSchedule。
|
||||
- **TypeError** - `parameters` 的元素不是 `Parameter` 或字典。
|
||||
- **TypeError** - `loss_scale` 或 `momentum` 不是float。
|
||||
- **TypeError** - `weight_decay` 不是float或int。
|
||||
- **TypeError** - `use_nesterov` 不是bool。
|
||||
- **ValueError** - `loss_scale` 小于或等于0。
|
||||
- **ValueError** - `weight_decay` 或 `momentum` 小于0。
|
||||
|
||||
**支持平台:**
|
||||
|
||||
``Ascend`` ``GPU`` ``CPU``
|
||||
|
||||
**样例:**
|
||||
|
||||
>>> net = Net()
|
||||
>>> #1) 所有参数使用相同的学习率和权重衰减
|
||||
>>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9)
|
||||
>>>
|
||||
>>> #2) 使用参数分组并设置不同的值
|
||||
>>> conv_params = list(filter(lambda x: 'conv' in x.name, net.trainable_params()))
|
||||
>>> no_conv_params = list(filter(lambda x: 'conv' not in x.name, net.trainable_params()))
|
||||
>>> group_params = [{'params': conv_params, 'weight_decay': 0.01, 'grad_centralization':True},
|
||||
... {'params': no_conv_params, 'lr': 0.01},
|
||||
... {'order_params': net.trainable_params()}]
|
||||
>>> optim = nn.Momentum(group_params, learning_rate=0.1, momentum=0.9, weight_decay=0.0)
|
||||
>>> # conv_params参数组将使用优化器中的学习率0.1、该组的权重衰减0.01、该组的梯度中心化配置True。
|
||||
>>> # no_conv_params参数组将使用该组的学习率0.01、优化器中的权重衰减0.0、梯度中心化使用默认值False。
|
||||
>>> # 优化器按照"order_params"配置的参数顺序更新参数。
|
||||
>>>
|
||||
>>> loss = nn.SoftmaxCrossEntropyWithLogits()
|
||||
>>> model = Model(net, loss_fn=loss, optimizer=optim, metrics=None)
|
|
@ -0,0 +1,132 @@
|
|||
mindspore.nn.Optimizer
|
||||
======================
|
||||
|
||||
.. py:class:: mindspore.nn.Optimizer(learning_rate, parameters, weight_decay=0.0, loss_scale=1.0)
|
||||
|
||||
用于参数更新的优化器基类。不要直接使用这个类,请实例化它的一个子类。
|
||||
|
||||
优化器支持参数分组。当参数分组时,每组参数均可配置不同的学习率(`lr` )、权重衰减(`weight_decay`)和梯度中心化(`grad_centralization`)策略。
|
||||
|
||||
.. note::
|
||||
.. include:: mindspore.nn.optim_note_weight_decay.rst
|
||||
|
||||
**参数:**
|
||||
|
||||
- **learning_rate** (Union[float, int, Tensor, Iterable, LearningRateSchedule]):
|
||||
|
||||
.. include:: mindspore.nn.optim_arg_dynamic_lr.rst
|
||||
|
||||
- **parameters (Union[list[Parameter], list[dict]])** - 必须是 `Parameter` 组成的列表或字典组成的列表。当列表元素是字典时,字典的键可以是"params"、"lr"、"weight_decay"、"grad_centralization"和"order_params":
|
||||
|
||||
.. include:: mindspore.nn.optim_group_param.rst
|
||||
.. include:: mindspore.nn.optim_group_lr.rst
|
||||
.. include:: mindspore.nn.optim_group_weight_decay.rst
|
||||
.. include:: mindspore.nn.optim_group_gc.rst
|
||||
.. include:: mindspore.nn.optim_group_order.rst
|
||||
|
||||
- **weight_decay** (Union[float, int]) - 权重衰减的整数或浮点值。必须等于或大于0。如果 `weight_decay` 是整数,它将被转换为浮点数。默认值:0.0。
|
||||
|
||||
.. include:: mindspore.nn.optim_arg_loss_scale.rst
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** - `learning_rate` 不是int、float、Tensor、Iterable或LearningRateSchedule。
|
||||
- **TypeError** - `parameters` 的元素不是Parameter或字典。
|
||||
- **TypeError** - `loss_scale` 不是float。
|
||||
- **TypeError** - `weight_decay` 不是float或int。
|
||||
- **ValueError** - `loss_scale` 小于或等于0。
|
||||
- **ValueError** - `weight_decay` 小于0。
|
||||
- **ValueError** - `learning_rate` 是一个Tensor,但是Tensor的维度大于1。
|
||||
|
||||
**支持平台:**
|
||||
|
||||
``Ascend`` ``GPU`` ``CPU``
|
||||
|
||||
.. py:method:: broadcast_params(optim_result)
|
||||
|
||||
按参数组的顺序进行参数广播。
|
||||
|
||||
**参数:**
|
||||
|
||||
**optim_result** (bool) - 参数更新结果。该输入用来保证参数更新完成后才执行参数广播。
|
||||
|
||||
**返回:**
|
||||
|
||||
bool,状态标志。
|
||||
|
||||
.. py:method:: decay_weight(gradients)
|
||||
|
||||
衰减权重。
|
||||
|
||||
一种减少深度学习神经网络模型过拟合的方法。继承 :class:`mindspore.nn.Optimizer` 自定义优化器时,可调用该接口进行权重衰减。
|
||||
|
||||
**参数:**
|
||||
|
||||
**gradients** (tuple[Tensor]) - 网络参数的梯度,形状(shape)与网络参数相同。
|
||||
|
||||
**返回:**
|
||||
|
||||
tuple[Tensor],衰减权重后的梯度。
|
||||
|
||||
.. py:method:: get_lr()
|
||||
|
||||
优化器调用该接口获取当前步骤(step)的学习率。继承 :class:`mindspore.nn.Optimizer` 自定义优化器时,可在参数更新前调用该接口获取学习率。
|
||||
|
||||
**返回:**
|
||||
|
||||
float,当前步骤的学习率。
|
||||
|
||||
.. py:method:: get_lr_parameter(param)
|
||||
|
||||
用于在使用网络参数分组功能,且为不同组别配置不同的学习率时,获取指定参数的学习率。
|
||||
|
||||
**参数:**
|
||||
|
||||
**param** (Union[Parameter, list[Parameter]]) - `Parameter` 或 `Parameter` 列表。
|
||||
|
||||
**返回:**
|
||||
|
||||
Parameter,单个 `Parameter` 或 `Parameter` 列表。如果使用了动态学习率,返回用于计算学习率的 `LearningRateSchedule` 或 `LearningRateSchedule` 列表。
|
||||
|
||||
**样例:**
|
||||
|
||||
>>> from mindspore import nn
|
||||
>>> net = Net()
|
||||
>>> conv_params = list(filter(lambda x: 'conv' in x.name, net.trainable_params()))
|
||||
>>> no_conv_params = list(filter(lambda x: 'conv' not in x.name, net.trainable_params()))
|
||||
>>> group_params = [{'params': conv_params, 'lr': 0.05},
|
||||
... {'params': no_conv_params, 'lr': 0.01}]
|
||||
>>> optim = nn.Momentum(group_params, learning_rate=0.1, momentum=0.9, weight_decay=0.0)
|
||||
>>> conv_lr = optim.get_lr_parameter(conv_params)
|
||||
>>> print(conv_lr[0].asnumpy())
|
||||
0.05
|
||||
|
||||
.. py:method:: gradients_centralization(gradients)
|
||||
|
||||
梯度中心化。
|
||||
|
||||
一种优化卷积层参数以提高深度学习神经网络模型训练速度的方法。继承 :class:`mindspore.nn.Optimizer` 自定义优化器时,可调用该接口进行梯度中心化。
|
||||
|
||||
**参数:**
|
||||
|
||||
**gradients** (tuple[Tensor]) - 网络参数的梯度,形状(shape)与网络参数相同。
|
||||
|
||||
**返回:**
|
||||
|
||||
tuple[Tensor],梯度中心化后的梯度。
|
||||
|
||||
.. py:method:: scale_grad(gradients)
|
||||
|
||||
用于在混合精度场景还原梯度。
|
||||
|
||||
继承 :class:`mindspore.nn.Optimizer` 自定义优化器时,可调用该接口还原梯度。
|
||||
|
||||
**参数:**
|
||||
|
||||
**gradients** (tuple[Tensor]) - 网络参数的梯度,形状(shape)与网络参数相同。
|
||||
|
||||
**返回:**
|
||||
|
||||
tuple[Tensor],还原后的梯度。
|
||||
|
||||
.. include:: mindspore.nn.optim_target_unique_for_sparse.rst
|
Loading…
Reference in New Issue