mindspore/docs/api/api_python/mindspore.experimental.rst

80 lines
3.1 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mindspore.experimental
=======================
实验性模块。
实验性优化器
------------
.. mscnplatformautosummary::
:toctree: experimental/optim
:nosignatures:
:template: classtemplate.rst
mindspore.experimental.optim.Optimizer
mindspore.experimental.optim.Adadelta
mindspore.experimental.optim.Adagrad
mindspore.experimental.optim.Adam
mindspore.experimental.optim.Adamax
mindspore.experimental.optim.AdamW
mindspore.experimental.optim.ASGD
mindspore.experimental.optim.NAdam
mindspore.experimental.optim.RAdam
mindspore.experimental.optim.RMSprop
mindspore.experimental.optim.Rprop
mindspore.experimental.optim.SGD
LRScheduler类
^^^^^^^^^^^^^^^^
本模块中的动态学习率都是LRScheduler的子类此模块仅与mindspore.experimental.optim下的优化器配合使用使用时将优化器实例传递给LRScheduler类。在训练过程中LRScheduler子类通过调用 `step` 方法进行学习率的动态改变。
.. code-block::
import mindspore
from mindspore import nn
from mindspore.experimental import optim
# Define the network structure of LeNet5. Refer to
# https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/lenet.py
net = LeNet5()
loss_fn = nn.SoftmaxCrossEntropyWithLogits(sparse=True)
optimizer = optim.Adam(net.trainable_params(), lr=0.05)
scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=2, gamma=0.1)
def forward_fn(data, label):
logits = net(data)
loss = loss_fn(logits, label)
return loss, logits
grad_fn = mindspore.value_and_grad(forward_fn, None, optimizer.parameters, has_aux=True)
def train_step(data, label):
(loss, _), grads = grad_fn(data, label)
optimizer(grads)
return loss
for epoch in range(6):
# Create the dataset taking MNIST as an example. Refer to
# https://gitee.com/mindspore/docs/blob/master/docs/mindspore/code/mnist.py
for data, label in create_dataset(need_download=False):
train_step(data, label)
scheduler.step()
.. mscnplatformautosummary::
:toctree: experimental/optim
:nosignatures:
:template: classtemplate.rst
mindspore.experimental.optim.lr_scheduler.LRScheduler
mindspore.experimental.optim.lr_scheduler.ConstantLR
mindspore.experimental.optim.lr_scheduler.CosineAnnealingLR
mindspore.experimental.optim.lr_scheduler.CosineAnnealingWarmRestarts
mindspore.experimental.optim.lr_scheduler.CyclicLR
mindspore.experimental.optim.lr_scheduler.ExponentialLR
mindspore.experimental.optim.lr_scheduler.LambdaLR
mindspore.experimental.optim.lr_scheduler.LinearLR
mindspore.experimental.optim.lr_scheduler.MultiplicativeLR
mindspore.experimental.optim.lr_scheduler.MultiStepLR
mindspore.experimental.optim.lr_scheduler.PolynomialLR
mindspore.experimental.optim.lr_scheduler.ReduceLROnPlateau
mindspore.experimental.optim.lr_scheduler.SequentialLR
mindspore.experimental.optim.lr_scheduler.StepLR