From 43e572a91fdf8c5fc498a206041952106e90c99a Mon Sep 17 00:00:00 2001 From: xumengjuan1 Date: Wed, 1 Dec 2021 10:29:28 +0800 Subject: [PATCH] modify api annotaion --- .../mindspore.common.initializer.rst | 295 ++++++------ .../mindspore.nn/mindspore.nn.WarmUpLR.rst | 14 +- .../mindspore.DatasetHelper.rst} | 128 +++--- .../mindspore.DynamicLossScaleManager.rst} | 106 ++--- .../mindspore.FixedLossScaleManager.rst} | 118 ++--- .../mindspore.LossScaleManager.rst} | 50 +-- .../mindspore/mindspore.Parameter.rst | 24 +- .../mindspore/mindspore.ParameterTuple.rst | 1 - .../api_python/mindspore/mindspore.Tensor.rst | 2 - ...indspore.connect_network_with_dataset.rst} | 78 ++-- .../api_python/mindspore/mindspore.model.rst | 11 +- ...n.Adagrad.txt => mindspore.nn.Adagrad.rst} | 172 +++---- ...pore.nn.Adam.txt => mindspore.nn.Adam.rst} | 202 ++++----- ...dspore.nn.Jvp.txt => mindspore.nn.Jvp.rst} | 0 ....nn.Metric.txt => mindspore.nn.Metric.rst} | 150 +++---- ...Momentum.txt => mindspore.nn.Momentum.rst} | 180 ++++---- ...timizer.txt => mindspore.nn.Optimizer.rst} | 284 ++++++------ ...dspore.nn.Vjp.txt => mindspore.nn.Vjp.rst} | 0 docs/api/api_python/nn/mindspore.nn.cell.rst | 420 +++++++++--------- 19 files changed, 1096 insertions(+), 1139 deletions(-) rename docs/api/api_python/{mindspore.DatasetHelper.txt => mindspore/mindspore.DatasetHelper.rst} (94%) rename docs/api/api_python/{mindspore.DynamicLossScaleManager.txt => mindspore/mindspore.DynamicLossScaleManager.rst} (96%) rename docs/api/api_python/{mindspore.FixedLossScaleManager.txt => mindspore/mindspore.FixedLossScaleManager.rst} (96%) rename docs/api/api_python/{mindspore.LossScaleManager.txt => mindspore/mindspore.LossScaleManager.rst} (90%) rename docs/api/api_python/{mindspore.connect_network_with_dataset.txt => mindspore/mindspore.connect_network_with_dataset.rst} (97%) rename docs/api/api_python/nn/{mindspore.nn.Adagrad.txt => mindspore.nn.Adagrad.rst} (97%) rename docs/api/api_python/nn/{mindspore.nn.Adam.txt => mindspore.nn.Adam.rst} (97%) rename docs/api/api_python/nn/{mindspore.nn.Jvp.txt => mindspore.nn.Jvp.rst} (100%) rename docs/api/api_python/nn/{mindspore.nn.Metric.txt => mindspore.nn.Metric.rst} (96%) rename docs/api/api_python/nn/{mindspore.nn.Momentum.txt => mindspore.nn.Momentum.rst} (98%) rename docs/api/api_python/nn/{mindspore.nn.Optimizer.txt => mindspore.nn.Optimizer.rst} (96%) rename docs/api/api_python/nn/{mindspore.nn.Vjp.txt => mindspore.nn.Vjp.rst} (100%) diff --git a/docs/api/api_python/mindspore.common.initializer.rst b/docs/api/api_python/mindspore.common.initializer.rst index aa14ce9e434..e494825cddb 100644 --- a/docs/api/api_python/mindspore.common.initializer.rst +++ b/docs/api/api_python/mindspore.common.initializer.rst @@ -1,159 +1,138 @@ -mindspore.common.initializer -============================= - -初始化神经元参数。 - -.. py:class:: mindspore.common.initializer.Initializer(**kwargs) - - 初始化器的抽象基类。 - - **参数:** - - - **kwargs** (`dict`) – **Initializer** 的关键字参数。 - - -.. py:method:: mindspore.common.initializer.initializer(init, shape=None, dtype=mstype.float32) - - 创建并初始化一个Tensor。 - - **参数:** - - - **init** (`Union[Tensor, str, Initializer, numbers.Number]`) – 初始化方式。 - - - *str*:`init` 是继承自 Initializer 的类的别名,实际使用时会调用相应的类。`init` 的值可以是"normal"、"ones"或"zeros"等。 - - *Initializer*:`init` 是继承自Initializer,用于初始化Tensor的类。 - - *numbers.Number*:调用常量来初始化张量。 - - - **shape** (`Union[[tuple, list, int]`) - 被初始化的Tensor的shape,默认值为None。 - - - **dtype** (`mindspore.dtype`) – 被初始化的Tensor的数据类型,默认值为 `mindspore.float32` 。 - - **返回:** - - Tensor,返回一个张量对象。 - - **异常:** - TypeError: 参数`init`的类型不正确。 - ValueError: 通过`init`传入的Tensor的shape和作为参数传入的shape不一致。 - - **样例:** - - .. code-block:: - - >>> import mindspore - >>> from mindspore.common.initializer import initializer, One - >>> tensor = initializer('ones', [1, 2, 3], mindspore.float32) - >>> tensor = initializer(One(), [1, 2, 3], mindspore.float32) - >>> tensor = initializer(0, [1, 2, 3], mindspore.float32) - -.. py:class:: mindspore.common.initializer.TruncatedNormal(sigma=0.01) - - 生成一个数组用于初始化Tensor,数组中的数值从截断正态分布中采样得到。 - - **参数:** - - - **sigma** (`float`) - 截断正态分布的标准差,默认值为0.01。 - - -.. py:class:: mindspore.common.initializer.Normal(sigma=0.01, mean=0.0) - - 生成一个数组用于初始化Tensor,数组中的数值从正态分布N(sigma, mean)中采样得到。 - - .. math:: - f(x) = \frac{1} {\sqrt{2*π} * sigma}exp(-\frac{(x - mean)^2} {2*{sigma}^2}) - - **参数:** - - - **sigma** (`float`) - 正态分布的标准差,默认值为0.01。 - - - **mean** (`float`) - 正态分布的均值,默认值为0.0。 - - - -.. py:class:: mindspore.common.initializer.Uniform(scale=0.07) - - 生成一个数组用于初始化Tensor,数组中的数值从均匀分布U(-scale, scale)中采样得到。 - - **参数:** - - - **scale** (`float`) - 均匀分布的边界,默认值为0.07。 - - -.. py:class:: mindspore.common.initializer.HeUniform(negative_slope=0, mode="fan_in", nonlinearity="leaky_relu") - - 生成一个数组用于初始化Tensor,数组中的数值从HeKaiming均匀分布U[-boundary,boundary]中采样得到,其中 - - .. math:: - boundary = \sqrt{\frac{6}{(1 + a^2) \times \text{fan_in}}} - - 是HeUniform分布的边界。 - - **参数:** - - - **negative_slope** (`int, float, bool`) - 本层激活函数的负数区间斜率(仅适用于非线性激活函数"leaky_relu"),默认值为0。 - - - **mode** (`str`) - 可选"fan_in"或"fan_out","fan_in"会保留前向传递中权重方差的量级,"fan_out"会保留反向传递的量级,默认为"fan_in"。 - - - **nonlinearity** (`str`) - 非线性激活函数,推荐使用"relu"或"leaky_relu",默认为"leaky_relu"。 - - - -.. py:class:: mindspore.common.initializer.HeNormal(negative_slope=0, mode="fan_in", nonlinearity="leaky_relu") - - 生成一个数组用于初始化Tensor,数组中的数值从HeKaiming正态分布N(0, sigma^2)中采样得到,其中 - - .. math:: - sigma = \frac{gain} {\sqrt{N}} - - 其中,gain是一个可选的缩放因子。如果mode是"fan_in", N是权重Tensor中输入单元的数量,如果mode是"fan_out", N是权重Tensor中输出单元的数量。 - - HeUniform 算法的详细信息,请查看 https://arxiv.org/abs/1502.01852。 - - **参数:** - - - **negative_slope** (`int, float, bool`) - 本层激活函数的负数区间斜率(仅适用于非线性激活函数"leaky_relu"),默认值为0。 - - - **mode** (`str`) - 可选"fan_in"或"fan_out","fan_in"会保留前向传递中权重方差的量级,"fan_out"会保留反向传递的量级,默认为"fan_in"。 - - - **nonlinearity** (`str`) - 非线性激活函数,推荐使用"relu"或"leaky_relu",默认为"leaky_relu"。 - - -.. py:class:: mindspore.common.initializer.XavierUniform(gain=1) - - 生成一个数组用于初始化Tensor,数组中的数值从Xarvier均匀分布U[-boundary,boundary]中采样得到,其中 - - .. math:: - - boundary = gain * \sqrt{\frac{6}{n_{in} + n_{out}}} - - - `gain` 是一个可选的缩放因子。 - - `n_{in}` 为权重Tensor中输入单元的数量。 - - `n_{out}` 为权重Tensor中输出单元的数量。 - - 有关 XavierUniform 算法的详细信息,请查看 http://proceedings.mlr.press/v9/glorot10a.html。 - - **参数:** - - - **gain** (`float`) - 可选的缩放因子,默认值为1。 - - -.. py:class:: mindspore.common.initializer.One(**kwargs) - - 生成一个值全为1的常量数组用于初始化Tensor。 - - - -.. py:class:: mindspore.common.initializer.Zero(**kwargs) - - 生成一个值全为0的常量数组用于初始化Tensor。 - - - -.. py:class:: mindspore.common.initializer.Constant(value) - - 生成一个常量数组用于初始化Tensor。 - - **参数:** - - - **value** (`Union[int, numpy.ndarray]`) - 用于初始化的常数值或者数组。 +mindspore.common.initializer +============================= + +初始化神经元参数。 + +.. py:class:: mindspore.common.initializer.Initializer(**kwargs) + + 初始化器的抽象基类。 + + **参数:** + + **kwargs** (`dict`) – **Initializer** 的关键字参数。 + + .. py:method:: mindspore.common.initializer.initializer(init, shape=None, dtype=mstype.float32) + + 创建并初始化一个Tensor。 + + **参数:** + + - **init** (`Union[Tensor, str, Initializer, numbers.Number]`) – 初始化方式。 + + - **str** - `init` 是继承自 Initializer 的类的别名,实际使用时会调用相应的类。`init` 的值可以是"normal"、"ones"或"zeros"等。 + - **Initializer** - `init` 是继承自Initializer,用于初始化Tensor的类。 + - **numbers.Number** - 调用常量来初始化张量。 + + - **shape** (`Union[[tuple, list, int]`) - 被初始化的Tensor的shape,默认值为None。 + - **dtype** (`mindspore.dtype`) – 被初始化的Tensor的数据类型,默认值为 `mindspore.float32` 。 + + **返回:** + + Tensor,返回一个张量对象。 + + **异常:** + + - **TypeError** - 参数 `init` 的类型不正确。 + - **ValueError** - 通过 `init` 传入的Tensor的shape和作为参数传入的shape不一致。 + + **样例:** + + >>> import mindspore + >>> from mindspore.common.initializer import initializer, One + >>> tensor = initializer('ones', [1, 2, 3], mindspore.float32) + >>> tensor = initializer(One(), [1, 2, 3], mindspore.float32) + >>> tensor = initializer(0, [1, 2, 3], mindspore.float32) + +.. py:class:: mindspore.common.initializer.TruncatedNormal(sigma=0.01) + + 生成一个数组用于初始化Tensor,数组中的数值从截断正态分布中采样得到。 + + **参数:** + + **sigma** (`float`) - 截断正态分布的标准差,默认值为0.01。 + +.. py:class:: mindspore.common.initializer.Normal(sigma=0.01, mean=0.0) + + 生成一个数组用于初始化Tensor,数组中的数值从正态分布N(sigma, mean)中采样得到。 + + .. math:: + f(x) = \frac{1} {\sqrt{2*π} * sigma}exp(-\frac{(x - mean)^2} {2*{sigma}^2}) + + **参数:** + + - **sigma** (`float`) - 正态分布的标准差,默认值为0.01。 + - **mean** (`float`) - 正态分布的均值,默认值为0.0。 + +.. py:class:: mindspore.common.initializer.Uniform(scale=0.07) + + 生成一个数组用于初始化Tensor,数组中的数值从均匀分布U(-scale, scale)中采样得到。 + + **参数:** + + **scale** (`float`) - 均匀分布的边界,默认值为0.07。 + +.. py:class:: mindspore.common.initializer.HeUniform(negative_slope=0, mode="fan_in", nonlinearity="leaky_relu") + + 生成一个数组用于初始化Tensor,数组中的数值从HeKaiming均匀分布U[-boundary,boundary]中采样得到,其中 + + .. math:: + boundary = \sqrt{\frac{6}{(1 + a^2) \times \text{fan_in}}} + + 是HeUniform分布的边界。 + + **参数:** + + - **negative_slope** (`int, float, bool`) - 本层激活函数的负数区间斜率(仅适用于非线性激活函数"leaky_relu"),默认值为0。 + - **mode** (`str`) - 可选"fan_in"或"fan_out","fan_in"会保留前向传递中权重方差的量级,"fan_out"会保留反向传递的量级,默认为"fan_in"。 + - **nonlinearity** (`str`) - 非线性激活函数,推荐使用"relu"或"leaky_relu",默认为"leaky_relu"。 + +.. py:class:: mindspore.common.initializer.HeNormal(negative_slope=0, mode="fan_in", nonlinearity="leaky_relu") + + 生成一个数组用于初始化Tensor,数组中的数值从HeKaiming正态分布N(0, sigma^2)中采样得到,其中 + + .. math:: + sigma = \frac{gain} {\sqrt{N}} + + 其中,gain是一个可选的缩放因子。如果mode是"fan_in", N是权重Tensor中输入单元的数量,如果mode是"fan_out", N是权重Tensor中输出单元的数量。 + + HeUniform 算法的详细信息,请查看 https://arxiv.org/abs/1502.01852。 + + **参数:** + + - **negative_slope** (`int, float, bool`) - 本层激活函数的负数区间斜率(仅适用于非线性激活函数"leaky_relu"),默认值为0。 + - **mode** (`str`) - 可选"fan_in"或"fan_out","fan_in"会保留前向传递中权重方差的量级,"fan_out"会保留反向传递的量级,默认为"fan_in"。 + - **nonlinearity** (`str`) - 非线性激活函数,推荐使用"relu"或"leaky_relu",默认为"leaky_relu"。 + +.. py:class:: mindspore.common.initializer.XavierUniform(gain=1) + + 生成一个数组用于初始化Tensor,数组中的数值从Xarvier均匀分布U[-boundary,boundary]中采样得到,其中 + + .. math:: + boundary = gain * \sqrt{\frac{6}{n_{in} + n_{out}}} + + - `gain` 是一个可选的缩放因子。 + - `n_{in}` 为权重Tensor中输入单元的数量。 + - `n_{out}` 为权重Tensor中输出单元的数量。 + + 有关 XavierUniform 算法的详细信息,请查看 http://proceedings.mlr.press/v9/glorot10a.html。 + + **参数:** + + **gain** (`float`) - 可选的缩放因子,默认值为1。 + +.. py:class:: mindspore.common.initializer.One(**kwargs) + + 生成一个值全为1的常量数组用于初始化Tensor。 + +.. py:class:: mindspore.common.initializer.Zero(**kwargs) + + 生成一个值全为0的常量数组用于初始化Tensor。 + +.. py:class:: mindspore.common.initializer.Constant(value) + + 生成一个常量数组用于初始化Tensor。 + + **参数:** + + **value** (`Union[int, numpy.ndarray]`) - 用于初始化的常数值或者数组。 \ No newline at end of file diff --git a/docs/api/api_python/mindspore.nn/mindspore.nn.WarmUpLR.rst b/docs/api/api_python/mindspore.nn/mindspore.nn.WarmUpLR.rst index 7bed2903420..5cf2a92009d 100644 --- a/docs/api/api_python/mindspore.nn/mindspore.nn.WarmUpLR.rst +++ b/docs/api/api_python/mindspore.nn/mindspore.nn.WarmUpLR.rst @@ -41,11 +41,11 @@ mindspore.nn.WarmUpLR **样例:** - >>> learning_rate = 0.1 - >>> warmup_steps = 2 - >>> global_step = Tensor(2, mstype.int32) - >>> warmup_lr = nn.WarmUpLR(learning_rate, warmup_steps) - >>> result = warmup_lr(global_step) - >>> print(result) - 0.1 + >>> learning_rate = 0.1 + >>> warmup_steps = 2 + >>> global_step = Tensor(2, mstype.int32) + >>> warmup_lr = nn.WarmUpLR(learning_rate, warmup_steps) + >>> result = warmup_lr(global_step) + >>> print(result) + 0.1 \ No newline at end of file diff --git a/docs/api/api_python/mindspore.DatasetHelper.txt b/docs/api/api_python/mindspore/mindspore.DatasetHelper.rst similarity index 94% rename from docs/api/api_python/mindspore.DatasetHelper.txt rename to docs/api/api_python/mindspore/mindspore.DatasetHelper.rst index 2fedee972af..338270d4f18 100644 --- a/docs/api/api_python/mindspore.DatasetHelper.txt +++ b/docs/api/api_python/mindspore/mindspore.DatasetHelper.rst @@ -1,65 +1,65 @@ -mindspore.DatasetHelper -======================== - -.. py:class:: mindspore.DatasetHelper(dataset, dataset_sink_mode=True, sink_size=-1, epoch_num=1) - - DatasetHelperһMindDataݼ࣬ṩݼϢ - - ݲͬģıݼĵڲͬʹͬĵ - - .. note:: - DatasetHelperĵṩһepochݡ - - **** - - - **dataset** (Dataset) - ѵݼݼݼAPI :class:`mindspore.dataset` ɣ :class:`mindspore.dataset.ImageFolderDataset` - - **dataset_sink_mode** (bool) - ֵΪTrueʹ :class:`mindspore.ops.GetNext` 豸DeviceͨͨлȡݣֱӱݼȡݡĬֵTrue - - **sink_size** (int) - ÿ³е `sink_size` Ϊ-1³ÿepochݼ `sink_size` 0³ÿepoch `sink_size` ݡĬֵ-1 - - **epoch_num** (int) - ƴ͵epochĬֵ1 - - **** - - >>> from mindspore import DatasetHelper - >>> - >>> train_dataset = create_custom_dataset() - >>> set_helper = DatasetHelper(train_dataset, dataset_sink_mode=False) - >>> # DatasetHelperǿɵ - >>> for next_element in set_helper: - ... next_element - - .. py:method:: continue_send() - - epochʼʱ豸ݡ - - .. py:method:: dynamic_min_max_shapes() - - ض̬ݵ״(shape)ΧС״(shape)״(shape) - - .. py:method:: get_data_info() - - ³ģʽ£ȡǰݵͺ״(shape)ͨ״(shape)̬仯ijʹá - - **** - - >>> from mindspore import DatasetHelper - >>> - >>> train_dataset = create_custom_dataset() - >>> dataset_helper = DatasetHelper(train_dataset, dataset_sink_mode=True) - >>> - >>> types, shapes = dataset_helper.get_data_info() - - .. py:method:: release() - - ͷ³Դ - - .. py:method:: sink_size() - - ȡÿε `sink_size` - - .. py:method:: stop_send() - - ֹͣ³ݡ - - .. py:method:: types_shapes() - +mindspore.DatasetHelper +======================== + +.. py:class:: mindspore.DatasetHelper(dataset, dataset_sink_mode=True, sink_size=-1, epoch_num=1) + + DatasetHelperһMindDataݼ࣬ṩݼϢ + + ݲͬģıݼĵڲͬʹͬĵ + + .. note:: + DatasetHelperĵṩһepochݡ + + **** + + - **dataset** (Dataset) - ѵݼݼݼAPI :class:`mindspore.dataset` ɣ :class:`mindspore.dataset.ImageFolderDataset` + - **dataset_sink_mode** (bool) - ֵΪTrueʹ :class:`mindspore.ops.GetNext` 豸DeviceͨͨлȡݣֱӱݼȡݡĬֵTrue + - **sink_size** (int) - ÿ³е `sink_size` Ϊ-1³ÿepochݼ `sink_size` 0³ÿepoch `sink_size` ݡĬֵ-1 + - **epoch_num** (int) - ƴ͵epochĬֵ1 + + **** + + >>> from mindspore import DatasetHelper + >>> + >>> train_dataset = create_custom_dataset() + >>> set_helper = DatasetHelper(train_dataset, dataset_sink_mode=False) + >>> # DatasetHelperǿɵ + >>> for next_element in set_helper: + ... next_element + + .. py:method:: continue_send() + + epochʼʱ豸ݡ + + .. py:method:: dynamic_min_max_shapes() + + ض̬ݵ״(shape)ΧС״(shape)״(shape) + + .. py:method:: get_data_info() + + ³ģʽ£ȡǰݵͺ״(shape)ͨ״(shape)̬仯ijʹá + + **** + + >>> from mindspore import DatasetHelper + >>> + >>> train_dataset = create_custom_dataset() + >>> dataset_helper = DatasetHelper(train_dataset, dataset_sink_mode=True) + >>> + >>> types, shapes = dataset_helper.get_data_info() + + .. py:method:: release() + + ͷ³Դ + + .. py:method:: sink_size() + + ȡÿε `sink_size` + + .. py:method:: stop_send() + + ֹͣ³ݡ + + .. py:method:: types_shapes() + ӵǰеݼȡͺ״(shape) \ No newline at end of file diff --git a/docs/api/api_python/mindspore.DynamicLossScaleManager.txt b/docs/api/api_python/mindspore/mindspore.DynamicLossScaleManager.rst similarity index 96% rename from docs/api/api_python/mindspore.DynamicLossScaleManager.txt rename to docs/api/api_python/mindspore/mindspore.DynamicLossScaleManager.rst index 6a40aa6f518..9ce11b5b161 100644 --- a/docs/api/api_python/mindspore.DynamicLossScaleManager.txt +++ b/docs/api/api_python/mindspore/mindspore.DynamicLossScaleManager.rst @@ -1,54 +1,54 @@ -mindspore.DynamicLossScaleManager -================================== - -.. py:class:: mindspore.DynamicLossScaleManager(init_loss_scale=16777216, scale_factor=2, scale_window=2000) - - ̬ݶȷŴϵĹ̳ :class:`mindspore.LossScaleManager` - - **** - - - **init_loss_scale** (float) - ʼݶȷŴϵĬֵ2**24 - - **scale_factor** (int) - Ŵ/СĬֵ2 - - **scale_window** (int) - ʱstepĬֵ2000 - - **** - - >>> from mindspore import Model, nn, DynamicLossScaleManager - >>> - >>> net = Net() - >>> loss_scale_manager = DynamicLossScaleManager() - >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9) - >>> model = Model(net, loss_scale_manager=loss_scale_manager, optimizer=optim) - - .. py:method:: get_drop_overflow_update() - - ֵʾǷڷʱֲ¡ - - **أ** - - boolʼΪTrue - - .. py:method:: get_loss_scale() - - صǰݶȷŴϵ - - **أ** - - floatݶȷŴϵ - - .. py:method:: get_update_cell() - - :class:`mindspore.TrainOneStepWithLossScaleCell` иݶȷŴϵ `Cell` ʵ - - **أ** - - :class:`mindspore.DynamicLossScaleUpdateCell` ʵڸݶȷŴϵ - - .. py:method:: update_loss_scale(overflow) - - ״̬ݶȷŴϵСݶȷŴϵݶȷŴϵ - - **** - - overflow (bool)ʾǷ +mindspore.DynamicLossScaleManager +================================== + +.. py:class:: mindspore.DynamicLossScaleManager(init_loss_scale=16777216, scale_factor=2, scale_window=2000) + + ̬ݶȷŴϵĹ̳ :class:`mindspore.LossScaleManager` + + **** + + - **init_loss_scale** (float) - ʼݶȷŴϵĬֵ2**24 + - **scale_factor** (int) - Ŵ/СĬֵ2 + - **scale_window** (int) - ʱstepĬֵ2000 + + **** + + >>> from mindspore import Model, nn, DynamicLossScaleManager + >>> + >>> net = Net() + >>> loss_scale_manager = DynamicLossScaleManager() + >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9) + >>> model = Model(net, loss_scale_manager=loss_scale_manager, optimizer=optim) + + .. py:method:: get_drop_overflow_update() + + ֵʾǷڷʱֲ¡ + + **أ** + + boolʼΪTrue + + .. py:method:: get_loss_scale() + + صǰݶȷŴϵ + + **أ** + + floatݶȷŴϵ + + .. py:method:: get_update_cell() + + :class:`mindspore.TrainOneStepWithLossScaleCell` иݶȷŴϵ `Cell` ʵ + + **أ** + + :class:`mindspore.DynamicLossScaleUpdateCell` ʵڸݶȷŴϵ + + .. py:method:: update_loss_scale(overflow) + + ״̬ݶȷŴϵСݶȷŴϵݶȷŴϵ + + **** + + overflow (bool)ʾǷ \ No newline at end of file diff --git a/docs/api/api_python/mindspore.FixedLossScaleManager.txt b/docs/api/api_python/mindspore/mindspore.FixedLossScaleManager.rst similarity index 96% rename from docs/api/api_python/mindspore.FixedLossScaleManager.txt rename to docs/api/api_python/mindspore/mindspore.FixedLossScaleManager.rst index 4e041964266..23a2bb9b557 100644 --- a/docs/api/api_python/mindspore.FixedLossScaleManager.txt +++ b/docs/api/api_python/mindspore/mindspore.FixedLossScaleManager.rst @@ -1,60 +1,60 @@ -mindspore.FixedLossScaleManager -=============================== - -.. py:class:: mindspore.FixedLossScaleManager(loss_scale=128.0, drop_overflow_update=True) - - ݶȷŴϵĹ̳:class: `mindspore.LossScaleManager` - - **** - - - **loss_scale** (float) - ݶȷŴϵע `drop_overflow_update` ΪFalseŻʱҪŻ `loss_scale` ΪֵͬĬֵ128.0 - - **drop_overflow_update** (bool) - ʱǷִŻֵΪTrueʱִŻĬֵTrue - - **** - - >>> from mindspore import Model, nn, FixedLossScaleManager - >>> - >>> net = Net() - >>> # 1) ִв - >>> loss_scale_manager = FixedLossScaleManager() - >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9) - >>> model = Model(net, loss_scale_manager=loss_scale_manager, optimizer=optim) - >>> - >>> # 2) ʹҲִв - >>> loss_scale = 1024.0 - >>> loss_scale_manager = FixedLossScaleManager(loss_scale, False) - >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9, loss_scale=loss_scale) - >>> model = Model(net, loss_scale_manager=loss_scale_manager, optimizer=optim) - - .. py:method:: get_drop_overflow_update() - - `drop_overflow_update` ֵʾǷڷʱֲ¡ - - **أ** - - bool, `drop_overflow_update` ֵ - - .. py:method:: get_loss_scale() - - ȡloss scaleֵ - - **أ** - - bool`loss_scale` ֵ - - .. py:method:: get_update_cell() - - ڸ `loss_scale` ֵ `Cell` ʵʵ :class:`mindspore.TrainOneStepWithLossScaleCell` ִС - - **أ** - - None `Cell` `drop_overflow_update` ΪTrueʱ :class:`mindspore.FixedLossScaleUpdateCell` ʵ `drop_overflow_update` ΪFalseʱNone - - .. py:method:: update_loss_scale(overflow) - - loss scaleֵ :class:`mindspore.FixedLossScaleManager` У÷ִκβ - - **** - - **overflow** (bool) - ʾǷ +mindspore.FixedLossScaleManager +=============================== + +.. py:class:: mindspore.FixedLossScaleManager(loss_scale=128.0, drop_overflow_update=True) + + ݶȷŴϵĹ̳:class: `mindspore.LossScaleManager` + + **** + + - **loss_scale** (float) - ݶȷŴϵע `drop_overflow_update` ΪFalseŻʱҪŻ `loss_scale` ΪֵͬĬֵ128.0 + - **drop_overflow_update** (bool) - ʱǷִŻֵΪTrueʱִŻĬֵTrue + + **** + + >>> from mindspore import Model, nn, FixedLossScaleManager + >>> + >>> net = Net() + >>> # 1) ִв + >>> loss_scale_manager = FixedLossScaleManager() + >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9) + >>> model = Model(net, loss_scale_manager=loss_scale_manager, optimizer=optim) + >>> + >>> # 2) ʹҲִв + >>> loss_scale = 1024.0 + >>> loss_scale_manager = FixedLossScaleManager(loss_scale, False) + >>> optim = nn.Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9, loss_scale=loss_scale) + >>> model = Model(net, loss_scale_manager=loss_scale_manager, optimizer=optim) + + .. py:method:: get_drop_overflow_update() + + `drop_overflow_update` ֵʾǷڷʱֲ¡ + + **أ** + + bool, `drop_overflow_update` ֵ + + .. py:method:: get_loss_scale() + + ȡloss scaleֵ + + **أ** + + bool`loss_scale` ֵ + + .. py:method:: get_update_cell() + + ڸ `loss_scale` ֵ `Cell` ʵʵ :class:`mindspore.TrainOneStepWithLossScaleCell` ִС + + **أ** + + None `Cell` `drop_overflow_update` ΪTrueʱ :class:`mindspore.FixedLossScaleUpdateCell` ʵ `drop_overflow_update` ΪFalseʱNone + + .. py:method:: update_loss_scale(overflow) + + loss scaleֵ :class:`mindspore.FixedLossScaleManager` У÷ִκβ + + **** + + **overflow** (bool) - ʾǷ \ No newline at end of file diff --git a/docs/api/api_python/mindspore.LossScaleManager.txt b/docs/api/api_python/mindspore/mindspore.LossScaleManager.rst similarity index 90% rename from docs/api/api_python/mindspore.LossScaleManager.txt rename to docs/api/api_python/mindspore/mindspore.LossScaleManager.rst index 24bc546e8e8..a013c64fefe 100644 --- a/docs/api/api_python/mindspore.LossScaleManager.txt +++ b/docs/api/api_python/mindspore/mindspore.LossScaleManager.rst @@ -1,26 +1,26 @@ -mindspore.LossScaleManager -=========================== - -.. py:class:: mindspore.LossScaleManager - - ϾݶȷŴϵloss scaleijࡣ - - Ҫз `get_loss_scale` ڻȡǰݶȷŴϵ `update_loss_scale` ڸݶȷŴϵ÷ѵбá `get_update_cell` ڻȡݶȷŴϵ `Cell` ʵʵڽѵбá³ģʽ½ `get_update_cell` ʽЧ³ģʽָݶȷŴϵķʽЧ - 磺:class:`mindspore.FixedLossScaleManager` :class:`mindspore.DynamicLossScaleManager` - - .. py:method:: get_loss_scale() - - ȡݶȷŴϵloss scaleֵ - - .. py:method:: get_update_cell() - - ȡڸݶȷŴϵ :class:`mindspore.nn.Cell` ʵ - - .. py:method:: update_loss_scale(overflow) - - `overflow` ״̬ݶȷŴϵloss scale) - - **** - - **overflow** (bool) - ʾѵǷ +mindspore.LossScaleManager +=========================== + +.. py:class:: mindspore.LossScaleManager + + ϾݶȷŴϵloss scaleijࡣ + + Ҫз `get_loss_scale` ڻȡǰݶȷŴϵ `update_loss_scale` ڸݶȷŴϵ÷ѵбá `get_update_cell` ڻȡݶȷŴϵ `Cell` ʵʵڽѵбá³ģʽ½ `get_update_cell` ʽЧ³ģʽָݶȷŴϵķʽЧ + 磺:class:`mindspore.FixedLossScaleManager` :class:`mindspore.DynamicLossScaleManager` + + .. py:method:: get_loss_scale() + + ȡݶȷŴϵloss scaleֵ + + .. py:method:: get_update_cell() + + ȡڸݶȷŴϵ :class:`mindspore.nn.Cell` ʵ + + .. py:method:: update_loss_scale(overflow) + + `overflow` ״̬ݶȷŴϵloss scale) + + **** + + **overflow** (bool) - ʾѵǷ \ No newline at end of file diff --git a/docs/api/api_python/mindspore/mindspore.Parameter.rst b/docs/api/api_python/mindspore/mindspore.Parameter.rst index a9c9c4cf70c..91dc6c3680e 100644 --- a/docs/api/api_python/mindspore/mindspore.Parameter.rst +++ b/docs/api/api_python/mindspore/mindspore.Parameter.rst @@ -44,7 +44,6 @@ >>> print(net(x)) [[0.]] - .. py:method:: cache_enable :property: @@ -67,7 +66,6 @@ `Parameter` ,返回克隆的新参数。 - .. py:method:: comm_fusion :property: @@ -75,7 +73,6 @@ 在 `AUTO_PARALLEL` 和 `SEMI_AUTO_PARALLEL` 模式下,一些用于参数或梯度聚合的通信算子将自动插入。fusion的值必须大于等于0。当fusion的值为0时,算子不会融合在一起。 - .. py:method:: data :property: @@ -89,28 +86,25 @@ - **layout** (Union[None, tuple]):参数的layout信息。layout[dev_mat, tensor_map, slice_shape, filed_size, uniform_split, opt_shard_group]:默认值:None。仅在 `SEMI_AUTO_PARALLEL` 或 `AUTO_PARALLEL` 模式下layout不是None。 - - **dev_mat** (list(int)):该参数的设备矩阵。 - - **tensor_map** (list(int)):该参数的张量映射。 - - **slice_shape** (list(int)):该参数的切片shape。 - - **filed_size** (int):该权重的行数。 - - **uniform_split** (bool):该参数是否进行均匀切分。 - - **opt_shard_group** (str):该参数进行优化器切分时的group。 + - **dev_mat** (list(int)):该参数的设备矩阵。 + - **tensor_map** (list(int)):该参数的张量映射。 + - **slice_shape** (list(int)):该参数的切片shape。 + - **filed_size** (int):该权重的行数。 + - **uniform_split** (bool):该参数是否进行均匀切分。 + - **opt_shard_group** (str):该参数进行优化器切分时的group。 - **set_sliced** (bool):参数初始化时被设定为分片,则为True。默认值:False。 **异常:** - **RuntimeError:** 参数使用 `Initializer` 模块进行初始化,初始化后并行模式发生更改。 - - **ValueError:** `layout` 长度小于6。 - - **TypeError:** `layout` 不是元组。 **返回:** 初始化数据后的 `Parameter` 。如果当前 `Parameter` 已初始化,则更新 `Parameter` 数据。 - .. py:method:: is_init :property: @@ -118,7 +112,6 @@ 此属性仅在GE(Graph Engine)中有效,在其他后端将设为False。 - .. py:method:: layerwise_parallel :property: @@ -126,7 +119,6 @@ 在 `DATA_PARALLEL` 和 `HYBRID_PARALLEL` 模式下,如果 `layerwise_parallel` 为True,则广播和gradients通信将不会应用到参数。 - .. py:method:: name :property: @@ -139,7 +131,6 @@ 用于在 `AUTO_PARALLEL` 和 `SEMI_AUTO_PARALLEL` 模式下过滤权重切分操作。当在 `mindspore.context.set_auto_parallel_context()` 中启用优化器并行时,它才有效。 - .. py:method:: parallel_optimizer_comm_recompute :property: @@ -151,7 +142,6 @@ - 仅支持 `Graph` 模式。 - 建议使用(cell.recompute(parallel_optimizer_comm_recompute=True/False)去配置由优化器并行生成的 :class:`mindspore.ops.AllGather` 算子,而不是直接使用该接口。 - .. py:method:: requires_grad :property: @@ -170,7 +160,6 @@ 完成数据设置的新参数。 - .. py:method:: set_param_fl(push_to_server=False, pull_from_server=False, requires_aggr=True) 设置参数和服务器的互动方式。 @@ -181,7 +170,6 @@ - **pull_from_server** (bool):表示是否应从服务器中拉取参数。默认值:False。 - **requires_aggr** (bool):表示是否应在服务器中聚合参数。默认值:True。 - .. py:method:: set_param_ps(init_in_server=False) 表示可训练参数是否由参数服务器更新,以及可训练参数是否在服务器上初始化。 diff --git a/docs/api/api_python/mindspore/mindspore.ParameterTuple.rst b/docs/api/api_python/mindspore/mindspore.ParameterTuple.rst index 8d0770a9552..fea510a373a 100644 --- a/docs/api/api_python/mindspore/mindspore.ParameterTuple.rst +++ b/docs/api/api_python/mindspore/mindspore.ParameterTuple.rst @@ -7,7 +7,6 @@ mindspore.ParameterTuple .. note::该类把网络参数存储到参数元组集合中。 - .. py:method:: clone(prefix, init='same') 按元素克隆 `ParameterTuple` 中的数值,以生成新的 `ParameterTuple` 。 diff --git a/docs/api/api_python/mindspore/mindspore.Tensor.rst b/docs/api/api_python/mindspore/mindspore.Tensor.rst index cac476e3e92..2179bc441cd 100644 --- a/docs/api/api_python/mindspore/mindspore.Tensor.rst +++ b/docs/api/api_python/mindspore/mindspore.Tensor.rst @@ -44,7 +44,6 @@ mindspore.Tensor 返回转置后的张量。 - .. py:method:: abs() 返回每个元素的绝对值。 @@ -65,7 +64,6 @@ mindspore.Tensor >>> print(output) [1.1 2.1] - .. py:method:: all(axis=(), keep_dims=False) 检查在指定轴上所有元素是否均为True。 diff --git a/docs/api/api_python/mindspore.connect_network_with_dataset.txt b/docs/api/api_python/mindspore/mindspore.connect_network_with_dataset.rst similarity index 97% rename from docs/api/api_python/mindspore.connect_network_with_dataset.txt rename to docs/api/api_python/mindspore/mindspore.connect_network_with_dataset.rst index 926a31f08ca..afaa59f640d 100644 --- a/docs/api/api_python/mindspore.connect_network_with_dataset.txt +++ b/docs/api/api_python/mindspore/mindspore.connect_network_with_dataset.rst @@ -1,40 +1,40 @@ -mindspore.connect_network_with_dataset -======================================= - -.. py:class:: mindspore.connect_network_with_dataset(network, dataset_helper) - - `network` `dataset_helper` еݼӡ - - ˺ʹ :class:`mindspore.ops.GetNext` װ磬ԱڼԶƶӦͨȡݣݴݵ硣 - - .. note:: - ͼģʽAscend/GPU磬˺ʹ :class:`mindspore.ops.GetNext` װ硣£罫ûиĶ·ء - ³ģʽ»ȡҪʹ :class:`mindspore.ops.GetNext` ˴˺ڷ³ģʽ - - **** - - - **network** (Cell) - ݼѵ硣 - - **dataset_helper** (DatasetHelper) - һMindDataݼ࣬ṩݼ͡״shapeͶƣ԰װ :class:`mindspore.ops.GetNext` - - **أ** - - CellAscendͼģʽ£һ :class:`mindspore.ops.GetNext` װ硣硣 - - **쳣** - - **RuntimeError** - ýӿڷ³ģʽá - - **֧ƽ̨** - - ``Ascend`` ``GPU`` - - **** - - >>> from mindspore import DatasetHelper - >>> - >>> # create_datasetһͨõݼοmindpore.dataset - >>> train_dataset = create_custom_dataset() - >>> dataset_helper = DatasetHelper(train_dataset, dataset_sink_mode=True) - >>> net = Net() - >>> net_with_get_next = connect_network_with_dataset(net, dataset_helper) +mindspore.connect_network_with_dataset +======================================= + +.. py:class:: mindspore.connect_network_with_dataset(network, dataset_helper) + + `network` `dataset_helper` еݼӡ + + ˺ʹ :class:`mindspore.ops.GetNext` װ磬ԱڼԶƶӦͨȡݣݴݵ硣 + + .. note:: + ͼģʽAscend/GPU磬˺ʹ :class:`mindspore.ops.GetNext` װ硣£罫ûиĶ·ء + ³ģʽ»ȡҪʹ :class:`mindspore.ops.GetNext` ˴˺ڷ³ģʽ + + **** + + - **network** (Cell) - ݼѵ硣 + - **dataset_helper** (DatasetHelper) - һMindDataݼ࣬ṩݼ͡״shapeͶƣ԰װ :class:`mindspore.ops.GetNext` + + **أ** + + CellAscendͼģʽ£һ :class:`mindspore.ops.GetNext` װ硣硣 + + **쳣** + + **RuntimeError** - ýӿڷ³ģʽá + + **֧ƽ̨** + + ``Ascend`` ``GPU`` + + **** + + >>> from mindspore import DatasetHelper + >>> + >>> # create_datasetһͨõݼοmindpore.dataset + >>> train_dataset = create_custom_dataset() + >>> dataset_helper = DatasetHelper(train_dataset, dataset_sink_mode=True) + >>> net = Net() + >>> net_with_get_next = connect_network_with_dataset(net, dataset_helper) \ No newline at end of file diff --git a/docs/api/api_python/mindspore/mindspore.model.rst b/docs/api/api_python/mindspore/mindspore.model.rst index a7009499de9..1d80db3e5c5 100644 --- a/docs/api/api_python/mindspore/mindspore.model.rst +++ b/docs/api/api_python/mindspore/mindspore.model.rst @@ -7,15 +7,15 @@ .. note:: 同一批次数据应放在一个张量中。 - **参数** : + **参数:** **predict_data** (`Tensor`) – 单个或多个张量的预测数据。 - **返回** : + **返回:** Dict,用于加载分布式checkpoint的参数layout字典。它总是作为 `load_distributed_checkpoint()` 函数的一个入参。 - **异常** : + **异常:** **RuntimeError** – 如果不是图模式(GRAPH_MODE)。 @@ -43,14 +43,13 @@ .. note:: 这是一个预编译函数。参数必须与model.train()函数相同。 - **参数** : + **参数:** - **train_dataset** (`Dataset`) – 一个训练数据集迭代器。如果没有损失函数(loss_fn),返回一个包含多个数据的元组(data1, data2, data3, ...)并传递给网络。否则,返回一个元组(data, label),数据和标签将被分别传递给网络和损失函数。 - **dataset_sink_mode** (`bool`) – 决定是否以数据集下沉模式进行训练。默认值:True。配置项是PyNative模式或CPU时,训练模型流程使用的是数据不下沉(non-sink)模式。默认值:True。 - **sink_size** (`int`) – 控制每次数据下沉的数据量,如果 `sink_size` =-1,则每一次epoch下沉完整数据集。如果 `sink_size` >0,则每一次epoch下沉数据量为 `sink_size` 的数据集。如果 `dataset_sink_mode` 为False,则设置 `sink_size` 为无效。默认值:-1。 - - **返回** : + **返回:** Dict,用于加载分布式checkpoint的参数layout字典。 diff --git a/docs/api/api_python/nn/mindspore.nn.Adagrad.txt b/docs/api/api_python/nn/mindspore.nn.Adagrad.rst similarity index 97% rename from docs/api/api_python/nn/mindspore.nn.Adagrad.txt rename to docs/api/api_python/nn/mindspore.nn.Adagrad.rst index 54ec5e8a50f..daec6b8a1fb 100644 --- a/docs/api/api_python/nn/mindspore.nn.Adagrad.txt +++ b/docs/api/api_python/nn/mindspore.nn.Adagrad.rst @@ -1,87 +1,87 @@ -mindspore.nn.Adagrad -===================== - -.. py:class:: mindspore.nn.Adagrad(*args, **kwargs) - - ʹApplyAdagradʵAdagrad㷨 - - AdagradѧϰŻ - `Efficient Learning using Forward-Backward Splitting `_ - ʽ£ - - .. 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" - - - **params** - ǰȨأֵ `Parameter` б - - **lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ - - **weight_decay** - ѡд"weight_decay"ʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ - - **grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 - - **order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С - - - **accum** (float) - ۼ :math:`h` ijʼֵڵ㡣Ĭֵ0.1 - - **learning_rate** (Union[float, Tensor, Iterable, LearningRateSchedule]) - Ĭֵ0.001 - - - **float** - ̶ѧϰʡڵ㡣 - - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ - - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ - - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ - - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ - - - **update_slots** (bool) - ΪTrueۼ :math:`h` ĬֵTrue - - **loss_scale** (float) - ݶϵ0`loss_scale`תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager` Ĭֵ1.0 - - **weight_decay** (Union[float, int]) - ҪȨصȨ˥ֵڵ0.0Ĭֵ0.0 - - **룺** - - **grads** (tuple[Tensor]) - Ż `params` ݶȣ״shape `params` ͬ - - **** - - Tensor[bool]ֵΪTrue - - **쳣** - - - **TypeError** - `learning_rate` intfloatTensorIterable `LearningRateSchedule` - - **TypeError** - `parameters` Ԫ `Parameter` ֵ䡣 - - **TypeError** - `accum` `loss_scale` float - - **TypeError** - `update_slots` bool - - **TypeError** - `weight_decay` floatint - - **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"õIJ˳² - >>> - >>> loss = nn.SoftmaxCrossEntropyWithLogits() +mindspore.nn.Adagrad +===================== + +.. py:class:: mindspore.nn.Adagrad(*args, **kwargs) + + ʹApplyAdagradʵAdagrad㷨 + + AdagradѧϰŻ + `Efficient Learning using Forward-Backward Splitting `_ + ʽ£ + + .. 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" + + - **params** - ǰȨأֵ `Parameter` б + - **lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ + - **weight_decay** - ѡд"weight_decay"ʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ + - **grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 + - **order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С + + - **accum** (float) - ۼ :math:`h` ijʼֵڵ㡣Ĭֵ0.1 + - **learning_rate** (Union[float, Tensor, Iterable, LearningRateSchedule]) - Ĭֵ0.001 + + - **float** - ̶ѧϰʡڵ㡣 + - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ + - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ + - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ + - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ + + - **update_slots** (bool) - ΪTrueۼ :math:`h` ĬֵTrue + - **loss_scale** (float) - ݶϵ0`loss_scale`תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager` Ĭֵ1.0 + - **weight_decay** (Union[float, int]) - ҪȨصȨ˥ֵڵ0.0Ĭֵ0.0 + + **룺** + + **grads** (tuple[Tensor]) - Ż `params` ݶȣ״shape `params` ͬ + + **** + + Tensor[bool]ֵΪTrue + + **쳣** + + - **TypeError** - `learning_rate` intfloatTensorIterable `LearningRateSchedule` + - **TypeError** - `parameters` Ԫ `Parameter` ֵ䡣 + - **TypeError** - `accum` `loss_scale` float + - **TypeError** - `update_slots` bool + - **TypeError** - `weight_decay` floatint + - **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"õIJ˳² + >>> + >>> loss = nn.SoftmaxCrossEntropyWithLogits() >>> model = Model(net, loss_fn=loss, optimizer=optim) \ No newline at end of file diff --git a/docs/api/api_python/nn/mindspore.nn.Adam.txt b/docs/api/api_python/nn/mindspore.nn.Adam.rst similarity index 97% rename from docs/api/api_python/nn/mindspore.nn.Adam.txt rename to docs/api/api_python/nn/mindspore.nn.Adam.rst index 18db6e0b3a5..2c9ff581a4d 100644 --- a/docs/api/api_python/nn/mindspore.nn.Adam.txt +++ b/docs/api/api_python/nn/mindspore.nn.Adam.rst @@ -1,102 +1,102 @@ -mindspore.nn.Adam -================== - -.. py:class:: mindspore.nn.Adam(*args, **kwargs) - - ͨAdaptive Moment Estimation (Adam)㷨ݶȡ - - `Adam: A Method for Stochastic Optimization `_ - - ʽ£ - - .. 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` ²裬:math:`beta_1^t` :math:`beta_2^t` `beta1_power` `beta2_power` :math:`\alpha` `learning_rate` :math:`w` `params` :math:`\epsilon` `eps` - - .. note:: - ǰʹSparseGatherV2ӣŻִϡ㣬ͨ `target` ΪCPUhostϽϡ㡣 - ϡڳС - - ڲδʱŻõ `weight_decay` Ӧƺ"beta""gamma"ͨɵȨ˥ԡʱÿ `weight_decay` δãʹŻõ `weight_decay` - - - **** - - - **params** (Union[list[Parameter], list[dict]]) - `Parameter` ɵбֵɵббԪֵʱֵļ"params""lr""weight_decay""grad_centralization""order_params" - - - **params** - ǰȨأֵ `Parameter` б - - **lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ - - **weight_decay** - ѡд"weight_decayʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ - - **grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 - - **order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С - - - **learning_rate (Union[float, Tensor, Iterable, LearningRateSchedule]): Ĭֵ1e-3 - - - **float** - ̶ѧϰʡڵ㡣 - - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ - - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ - - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ - - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ - - - **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 - - **loss_scale** (float) - ݶϵ0 `loss_scale` תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager` Ĭֵ1.0 - - **룺** - - **gradients** (tuple[Tensor]) - `params` ݶȣ״shape `params` ͬ - - **** - - Tensor[bool]ֵΪTrue - - **쳣** - - - **TypeError** - `learning_rate` intfloatTensorIterableLearningRateSchedule - - **TypeError** - `parameters` ԪزParameterֵ䡣 - - **TypeError** - `beta1` `beta2` `eps` `loss_scale` float - - **TypeError** - `weight_decay` floatint - - **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"õIJ˳² - >>> - >>> loss = nn.SoftmaxCrossEntropyWithLogits() - >>> model = Model(net, loss_fn=loss, optimizer=optim) - - - .. py:method:: target - :property: - +mindspore.nn.Adam +================== + +.. py:class:: mindspore.nn.Adam(*args, **kwargs) + + ͨAdaptive Moment Estimation (Adam)㷨ݶȡ + + `Adam: A Method for Stochastic Optimization `_ + + ʽ£ + + .. 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` ²裬:math:`beta_1^t` :math:`beta_2^t` `beta1_power` `beta2_power` :math:`\alpha` `learning_rate` :math:`w` `params` :math:`\epsilon` `eps` + + .. note:: + ǰʹSparseGatherV2ӣŻִϡ㣬ͨ `target` ΪCPUhostϽϡ㡣 + ϡڳС + + ڲδʱŻõ `weight_decay` Ӧƺ"beta""gamma"ͨɵȨ˥ԡʱÿ `weight_decay` δãʹŻõ `weight_decay` + + + **** + + - **params** (Union[list[Parameter], list[dict]]) - `Parameter` ɵбֵɵббԪֵʱֵļ"params""lr""weight_decay""grad_centralization""order_params" + + - **params** - ǰȨأֵ `Parameter` б + - **lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ + - **weight_decay** - ѡд"weight_decayʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ + - **grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 + - **order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С + + - **learning_rate (Union[float, Tensor, Iterable, LearningRateSchedule]): Ĭֵ1e-3 + + - **float** - ̶ѧϰʡڵ㡣 + - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ + - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ + - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ + - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ + + - **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 + - **loss_scale** (float) - ݶϵ0 `loss_scale` תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager` Ĭֵ1.0 + + **룺** + + **gradients** (tuple[Tensor]) - `params` ݶȣ״shape `params` ͬ + + **** + + Tensor[bool]ֵΪTrue + + **쳣** + + - **TypeError** - `learning_rate` intfloatTensorIterableLearningRateSchedule + - **TypeError** - `parameters` ԪزParameterֵ䡣 + - **TypeError** - `beta1` `beta2` `eps` `loss_scale` float + - **TypeError** - `weight_decay` floatint + - **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"õIJ˳² + >>> + >>> loss = nn.SoftmaxCrossEntropyWithLogits() + >>> model = Model(net, loss_fn=loss, optimizer=optim) + + + .. py:method:: target + :property: + ָhostϻ豸deviceϸ²Ϊstrֻ'CPU''Ascend''GPU' \ No newline at end of file diff --git a/docs/api/api_python/nn/mindspore.nn.Jvp.txt b/docs/api/api_python/nn/mindspore.nn.Jvp.rst similarity index 100% rename from docs/api/api_python/nn/mindspore.nn.Jvp.txt rename to docs/api/api_python/nn/mindspore.nn.Jvp.rst diff --git a/docs/api/api_python/nn/mindspore.nn.Metric.txt b/docs/api/api_python/nn/mindspore.nn.Metric.rst similarity index 96% rename from docs/api/api_python/nn/mindspore.nn.Metric.txt rename to docs/api/api_python/nn/mindspore.nn.Metric.rst index c4e64b3c98b..b177cda2d90 100644 --- a/docs/api/api_python/nn/mindspore.nn.Metric.txt +++ b/docs/api/api_python/nn/mindspore.nn.Metric.rst @@ -1,76 +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:: - ඼д˽ӿڡ - - **** - +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** - ɱ䳤бͨԤֵͶӦʵǩ \ No newline at end of file diff --git a/docs/api/api_python/nn/mindspore.nn.Momentum.txt b/docs/api/api_python/nn/mindspore.nn.Momentum.rst similarity index 98% rename from docs/api/api_python/nn/mindspore.nn.Momentum.txt rename to docs/api/api_python/nn/mindspore.nn.Momentum.rst index 772f25981ca..97abc5359de 100644 --- a/docs/api/api_python/nn/mindspore.nn.Momentum.txt +++ b/docs/api/api_python/nn/mindspore.nn.Momentum.rst @@ -1,91 +1,91 @@ -mindspore.nn.Momentum -====================== - -.. py:class:: mindspore.nn.Momentum(*args, **kwargs) - - Momentum㷨Ż - - йظϸϢ `On the importance of initialization and momentum in deep learning `_ - - .. 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:: - ڲδʱŻõ `weight_decay` Ӧƺ"beta""gamma"ͨɵȨ˥ԡʱÿ `weight_decay` δãʹŻõ `weight_decay` - - **** - - - **params (Union[list[Parameter], list[dict]]): `Parameter` ɵбֵɵббԪֵʱֵļ"params""lr""weight_decay""grad_centralization""order_params" - - -** params** - ǰȨأֵ `Parameter` б - -** lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ - -** weight_decay** - ѡд"weight_decayʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ - -** grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 - -** order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С - - - **learning_rate (Union[float, int, Tensor, Iterable, LearningRateSchedule]): - - - **float** - ̶ѧϰʡڵ㡣 - - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ - - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ - - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ - - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ - - - **momentum** (float) - ͵ijΣʾƶƽĶڻ0.0 - - **weight_decay** (int, float) - Ȩ˥L2 penaltyֵڵ0.0Ĭֵ0.0 - - **loss_scale** (float) - ݶϵ0 `loss_scale` תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager` Ĭֵ1.0 - - **use_nesterov** (bool) - ǷʹNesterov Accelerated Gradient (NAG)㷨ݶȡĬֵFalse - - **룺** - - **gradients** (tuple[Tensor]) - `params` ݶȣ״shape `params` ͬ - - **** - - tuple[bool]ԪضΪTrue - - **쳣** - - - **TypeError** - `learning_rate` intfloatTensorIterableLearningRateSchedule - - **TypeError** - `parameters` Ԫز `Parameter` ֵ䡣 - - **TypeError** - `loss_scale` `momentum` float - - **TypeError** - `weight_decay` floatint - - **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"õIJ˳² - >>> - >>> loss = nn.SoftmaxCrossEntropyWithLogits() +mindspore.nn.Momentum +====================== + +.. py:class:: mindspore.nn.Momentum(*args, **kwargs) + + Momentum㷨Ż + + йظϸϢ `On the importance of initialization and momentum in deep learning `_ + + .. 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:: + ڲδʱŻõ `weight_decay` Ӧƺ"beta""gamma"ͨɵȨ˥ԡʱÿ `weight_decay` δãʹŻõ `weight_decay` + + **** + + - **params (Union[list[Parameter], list[dict]]): `Parameter` ɵбֵɵббԪֵʱֵļ"params""lr""weight_decay""grad_centralization""order_params" + + -** params** - ǰȨأֵ `Parameter` б + -** lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ + -** weight_decay** - ѡд"weight_decayʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ + -** grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 + -** order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С + + - **learning_rate (Union[float, int, Tensor, Iterable, LearningRateSchedule]): + + - **float** - ̶ѧϰʡڵ㡣 + - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ + - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ + - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ + - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ + + - **momentum** (float) - ͵ijΣʾƶƽĶڻ0.0 + - **weight_decay** (int, float) - Ȩ˥L2 penaltyֵڵ0.0Ĭֵ0.0 + - **loss_scale** (float) - ݶϵ0 `loss_scale` תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager` Ĭֵ1.0 + - **use_nesterov** (bool) - ǷʹNesterov Accelerated Gradient (NAG)㷨ݶȡĬֵFalse + + **룺** + + **gradients** (tuple[Tensor]) - `params` ݶȣ״shape `params` ͬ + + **** + + tuple[bool]ԪضΪTrue + + **쳣** + + - **TypeError** - `learning_rate` intfloatTensorIterableLearningRateSchedule + - **TypeError** - `parameters` Ԫز `Parameter` ֵ䡣 + - **TypeError** - `loss_scale` `momentum` float + - **TypeError** - `weight_decay` floatint + - **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"õIJ˳² + >>> + >>> loss = nn.SoftmaxCrossEntropyWithLogits() >>> model = Model(net, loss_fn=loss, optimizer=optim, metrics=None) \ No newline at end of file diff --git a/docs/api/api_python/nn/mindspore.nn.Optimizer.txt b/docs/api/api_python/nn/mindspore.nn.Optimizer.rst similarity index 96% rename from docs/api/api_python/nn/mindspore.nn.Optimizer.txt rename to docs/api/api_python/nn/mindspore.nn.Optimizer.rst index 7896fa6a20e..5126acdb094 100644 --- a/docs/api/api_python/nn/mindspore.nn.Optimizer.txt +++ b/docs/api/api_python/nn/mindspore.nn.Optimizer.rst @@ -1,143 +1,143 @@ -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:: - ڲδʱŻõ `weight_decay` Ӧƺ"beta""gamma"ͨɵȨ˥ԡʱÿ `weight_decay` δãʹŻõ `weight_decay` - - **** - - - **learning_rate (Union[float, int, Tensor, Iterable, LearningRateSchedule]): - - - **float** - ̶ѧϰʡڵ㡣 - - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ - - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ - - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ - - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ - - - **parameters (Union[list[Parameter], list[dict]])** - `Parameter` ɵбֵɵббԪֵʱֵļ"params""lr""weight_decay""grad_centralization""order_params" - - - **params** - ǰȨأֵ `Parameter` б - - **lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ - - **weight_decay** - ѡд"weight_decayʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ - - **grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 - - **order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С - - - **weight_decay** (Union[float, int]) - Ȩ˥򸡵ֵڻ0 `weight_decay` תΪĬֵ0.0 - - **loss_scale** (float) - ݶϵ0 `loss_scale` תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager ` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager`Ĭֵ1.0 - - **쳣** - - - **TypeError** - `learning_rate` intfloatTensorIterableLearningRateSchedule - - **TypeError** - `parameters` ԪزParameterֵ䡣 - - **TypeError** - `loss_scale` float - - **TypeError** - `weight_decay` floatint - - **ValueError** - `loss_scale` Сڻ0 - - **ValueError** - `weight_decay` С0 - - **ValueError** - `learning_rate` һTensorTensorάȴ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]ԭݶȡ - - .. py:method:: target - :property: - - ָhostϻ豸deviceϸ²Ϊstrֻ'CPU''Ascend''GPU' - - .. py:method:: unique - :property: - +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:: + ڲδʱŻõ `weight_decay` Ӧƺ"beta""gamma"ͨɵȨ˥ԡʱÿ `weight_decay` δãʹŻõ `weight_decay` + + **** + + - **learning_rate (Union[float, int, Tensor, Iterable, LearningRateSchedule]): + + - **float** - ̶ѧϰʡڵ㡣 + - **int** - ̶ѧϰʡڵ㡣ͻᱻתΪ + - **Tensor** - DZһάǹ̶ѧϰʡһάǶ̬ѧϰʣiȡеiֵΪѧϰʡ + - **Iterable** - ̬ѧϰʡiȡiֵΪѧϰʡ + - **LearningRateSchedule** - ̬ѧϰʡѵУŻʹòstepΪ룬 `LearningRateSchedule` ʵ㵱ǰѧϰʡ + + - **parameters (Union[list[Parameter], list[dict]])** - `Parameter` ɵбֵɵббԪֵʱֵļ"params""lr""weight_decay""grad_centralization""order_params" + + - **params** - ǰȨأֵ `Parameter` б + - **lr** - ѡд"lr"ʹöӦֵΪѧϰʡûУʹŻõ `learning_rate` Ϊѧϰʡ + - **weight_decay** - ѡд"weight_decayʹöӦֵΪȨ˥ֵûУʹŻõ `weight_decay` ΪȨ˥ֵ + - **grad_centralization** - ѡд"grad_centralization"ʹöӦֵֵΪ͡ûУΪ `grad_centralization` ΪFalseòھ㡣 + - **order_params** - ѡӦֵԤڵIJ˳򡣵ʹò鹦ʱͨʹø `parameters` ˳ܡд"order_params"Ըе"order_params"еIJijһ `params` С + + - **weight_decay** (Union[float, int]) - Ȩ˥򸡵ֵڻ0 `weight_decay` תΪĬֵ0.0 + - **loss_scale** (float) - ݶϵ0 `loss_scale` תΪͨʹĬֵѵʱʹ `FixedLossScaleManager` `FixedLossScaleManager ` `drop_overflow_update` ΪFalseʱֵҪ `FixedLossScaleManager` е `loss_scale` ͬйظϸϢclass`mindspore.FixedLossScaleManager`Ĭֵ1.0 + + **쳣** + + - **TypeError** - `learning_rate` intfloatTensorIterableLearningRateSchedule + - **TypeError** - `parameters` ԪزParameterֵ䡣 + - **TypeError** - `loss_scale` float + - **TypeError** - `weight_decay` floatint + - **ValueError** - `loss_scale` Сڻ0 + - **ValueError** - `weight_decay` С0 + - **ValueError** - `learning_rate` һTensorTensorάȴ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]ԭݶȡ + + .. py:method:: target + :property: + + ָhostϻ豸deviceϸ²Ϊstrֻ'CPU''Ascend''GPU' + + .. py:method:: unique + :property: + ԱʾǷŻнݶȥأͨϡ硣ݶϡΪTrueǰϡѶȨȥأݶdzܵģΪFalseδʱĬֵΪTrue \ No newline at end of file diff --git a/docs/api/api_python/nn/mindspore.nn.Vjp.txt b/docs/api/api_python/nn/mindspore.nn.Vjp.rst similarity index 100% rename from docs/api/api_python/nn/mindspore.nn.Vjp.txt rename to docs/api/api_python/nn/mindspore.nn.Vjp.rst diff --git a/docs/api/api_python/nn/mindspore.nn.cell.rst b/docs/api/api_python/nn/mindspore.nn.cell.rst index 3fe49a40309..e263ff5d9d3 100644 --- a/docs/api/api_python/nn/mindspore.nn.cell.rst +++ b/docs/api/api_python/nn/mindspore.nn.cell.rst @@ -3,388 +3,382 @@ .. py:class:: mindspore.nn.Cell(auto_prefix=True, flags=None) - 所有神经网络的基类。 + 所有神经网络的基类。 - 一个 `Cell` 可以是单一的神经网络单元,如 :class:`mindspore.nn.Conv2d`, :class:`mindspore.nn.ReLU, :class:`mindspore.nn.BatchNorm`等,也可以是组成网络的 `Cell` 的结合体。 + 一个 `Cell` 可以是单一的神经网络单元,如 :class:`mindspore.nn.Conv2d`, :class:`mindspore.nn.ReLU, :class:`mindspore.nn.BatchNorm`等,也可以是组成网络的 `Cell` 的结合体。 - .. note:: 一般情况下,自动微分 (AutoDiff) 算法会自动调用梯度函数,但是如果使用反向传播方法 (bprop method),梯度函数将会被反向传播方法代替。反向传播函数会接收一个包含损失对输出的梯度张量 `dout` 和一个包含前向传播结果的张量 `out` 。反向传播过程需要计算损失对输入的梯度,损失对参数变量的梯度目前暂不支持。反向传播函数必须包含自身参数。 + .. note:: + 一般情况下,自动微分 (AutoDiff) 算法会自动调用梯度函数,但是如果使用反向传播方法 (bprop method),梯度函数将会被反向传播方法代替。反向传播函数会接收一个包含损失对输出的梯度张量 `dout` 和一个包含前向传播结果的张量 `out` 。反向传播过程需要计算损失对输入的梯度,损失对参数变量的梯度目前暂不支持。反向传播函数必须包含自身参数。 - **参数** : + **参数:** - - **auto_prefix** (`Cell`) – 递归地生成作用域。默认值:True。 - - **flags** (`dict`) - Cell的配置信息,目前用于绑定Cell和数据集。用户也通过该参数自定义Cell属性。默认值:None。 + - **auto_prefix** (`Cell`) – 递归地生成作用域。默认值:True。 + - **flags** (`dict`) - Cell的配置信息,目前用于绑定Cell和数据集。用户也通过该参数自定义Cell属性。默认值:None。 - **支持平台**: + **支持平台**: - ``Ascend`` ``GPU`` ``CPU`` + ``Ascend`` ``GPU`` ``CPU`` - **样例** : + **样例** : - .. code-block:: + >>> import mindspore.nn as nn + >>> import mindspore.ops as ops + >>> class MyCell(nn.Cell): + ... def __init__(self): + ... super(MyCell, self).__init__() + ... self.relu = ops.ReLU() + ... + ... def construct(self, x): + ... return self.relu(x) - >>> import mindspore.nn as nn - >>> import mindspore.ops as ops - >>> class MyCell(nn.Cell): - ... def __init__(self): - ... super(MyCell, self).__init__() - ... self.relu = ops.ReLU() - ... - ... def construct(self, x): - ... return self.relu(x) - - .. py:method:: add_flags(**flags) + .. py:method:: add_flags(**flags) 为Cell添加自定义属性。 在实例化Cell类时,如果入参flags不为空,会调用此方法。 + + **参数:** + + **flags** (`dict`) - Cell的配置信息,目前用于绑定Cell和数据集。用户也通过该参数自定义Cell属性。默认值:None。 - **参数** : - - **flags** (`dict`) - Cell的配置信息,目前用于绑定Cell和数据集。用户也通过该参数自定义Cell属性。默认值:None。 - - - .. py:method:: add_flags_recursive(**flags) + .. py:method:: add_flags_recursive(**flags) 如果Cell含有多个子Cell,此方法会递归得给所有子Cell添加自定义属性。 - **参数** : + **参数:** - **flags** (`dict`) - Cell的配置信息,目前用于绑定Cell和数据集。用户也通过该参数自定义Cell属性。默认值:None。 + **flags** (`dict`) - Cell的配置信息,目前用于绑定Cell和数据集。用户也通过该参数自定义Cell属性。默认值:None。 - - .. py:method:: cast_inputs(inputs, dst_type) + .. py:method:: cast_inputs(inputs, dst_type) 将输入转换为指定类型。 - **参数** : + **参数:** - **inputs** (`tuple[Tensor]`) - 输入。 - **dst_type** (`mindspore.dtype`) - 指定的数据类型。 + - **inputs** (`tuple[Tensor]`) - 输入。 + - **dst_type** (`mindspore.dtype`) - 指定的数据类型。 - **返回**: + **返回:** - tuple[Tensor]类型,转换类型后的结果。 + tuple[Tensor]类型,转换类型后的结果。 - .. py:method:: cast_param(param) + .. py:method:: cast_param(param) - 在PyNative模式下,根据自动混合精度的精度设置转换Cell中参数的类型。 + 在PyNative模式下,根据自动混合精度的精度设置转换Cell中参数的类型。 - 该接口目前在自动混合精度场景下使用。 + 该接口目前在自动混合精度场景下使用。 - **参数**: + **参数:** - **param** (`Parameter`) – Parameter类型,需要被转换类型的输入参数。 + **param** (`Parameter`) – Parameter类型,需要被转换类型的输入参数。 - **返回**: + **返回:** - Parameter类型,转换类型后的参数。 + Parameter类型,转换类型后的参数。 - .. py:method:: cells() + .. py:method:: cells() - 返回当前Cell的子Cell的迭代器。 + 返回当前Cell的子Cell的迭代器。 + **返回:** - **返回**: + Iteration类型,Cell的子Cell。 - Iteration类型,Cell的子Cell。 + .. py:method:: cells_and_names(cells=None, name_prefix="") - .. py:method:: cells_and_names(cells=None, name_prefix="") + 递归地获取当前Cell及输入 `cells` 的所有子Cell的迭代器,包括Cell的名称及其本身。 - 递归地获取当前Cell及输入 `cells` 的所有子Cell的迭代器,包括Cell的名称及其本身。 + **参数:** - **参数**: + - **cell** (`str`) – 需要进行迭代的Cell。默认值:None。 + - **name_prefix** (`str`) – 作用域。默认值:''。 - - **cell** (`str`) – 需要进行迭代的Cell。默认值:None。 - - **name_prefix** (`str`) – 作用域。默认值:''。 + **返回:** - **返回**: + Iteration类型,当前Cell及输入 `cells` 的所有子Cell和相对应的名称。 - Iteration类型,当前Cell及输入 `cells` 的所有子Cell和相对应的名称。 + **样例:** - **样例** : + >>> n = Net() + >>> names = [] + >>> for m in n.cells_and_names(): + ... if m[0]: + ... names.append(m[0]) + + .. py:method:: check_names() - .. code-block:: + 检查Cell中的网络参数名称是否重复。 - >>> n = Net() - >>> names = [] - >>> for m in n.cells_and_names(): - ... if m[0]: - ... names.append(m[0]) + .. py:method:: compile(*inputs) - .. py:method:: check_names() + 编译Cell。 - 检查Cell中的网络参数名称是否重复。 + **参数:** + **inputs** (`tuple`) – Cell的输入。 - .. py:method:: compile(*inputs) + .. py:method:: compile_and_run(*inputs) - 编译Cell。 + 编译并运行Cell。 - **参数**: + **参数:** - **inputs** (`tuple`) – Cell的输入。 + **inputs** (`tuple`) – Cell的输入。 - .. py:method:: compile_and_run(*inputs) + **返回:** - 编译并运行Cell。 + Object类型,执行的结果。 - **参数**: + .. py:method:: construct(*inputs, **kwargs) - **inputs** (`tuple`) – Cell的输入。 + 定义要执行的计算逻辑。所有子类都必须重写此方法。 - **返回**: + **返回:** - Object类型,执行的结果。 + Tensor类型,返回计算结果。 - .. py:method:: construct(*inputs, **kwargs) + .. py:method:: exec_checkpoint_graph() - 定义要执行的计算逻辑。所有子类都必须重写此方法。 + 保存checkpoint图。 - **返回**: + .. py:method:: extend_repr() + + 设置Cell的扩展表示形式。 - Tensor类型,返回计算结果。 + 若需要在print时输出个性化的扩展信息,请在您的网络中重新实现此方法。 - .. py:method:: exec_checkpoint_graph() + .. py:method:: generate_scope() - 保存checkpoint图。 + 为网络中的每个Cell对象生成作用域。 - .. py:method:: extend_repr() + .. py:method:: get_flags() - 设置Cell的扩展表示形式。 + 获取该Cell的自定义属性。自定义属性通过 `add_flags` 方法添加。 - 若需要在print时输出个性化的扩展信息,请在您的网络中重新实现此方法。 + .. py:method:: get_func_graph_proto() - .. py:method:: generate_scope() + 返回图的二进制原型。 - 为网络中的每个Cell对象生成作用域。 + .. py:method:: get_parameters(expand=True) - .. py:method:: get_flags() + 返回一个该Cell中parameter的迭代器。 - 获取该Cell的自定义属性。自定义属性通过 `add_flags` 方法添加。 + **参数:** - .. py:method:: get_func_graph_proto() + **expand** (`bool`) – 如果为True,则递归地获取当前Cell和所有子Cell的parameter。否则,只生成当前Cell的子Cell的parameter。默认值:True。 - 返回图的二进制原型。 + **返回:** - .. py:method:: get_parameters(expand=True) + Iteration类型,Cell的parameter。 - 返回一个该Cell中parameter的迭代器。 + **样例:** - **参数**: + >>> n = Net() + >>> parameters = [] + >>> for item in net.get_parameters(): + ... parameters.append(item) - **expand** (`bool`) – 如果为True,则递归地获取当前Cell和所有子Cell的parameter。否则,只生成当前Cell的子Cell的parameter。默认值:True。 + .. py:method:: get_scope() - **返回**: + 返回Cell的作用域。 - Iteration类型,Cell的parameter。 + **返回:** - **样例** : + String类型,网络的作用域。 - .. code-block:: + .. py:method:: insert_child_to_cell(child_name, child_cell) - >>> n = Net() - >>> parameters = [] - >>> for item in net.get_parameters(): - ... parameters.append(item) + 将一个给定名称的子Cell添加到当前Cell。 - .. py:method:: get_scope() + **参数:** - 返回Cell的作用域。 + - **child_name** (`str`) – 子Cell名称。 + - **child_cell** (`Cell`) – 要插入的子Cell。 - **返回**: + **异常:** - String类型,网络的作用域。 + - **KeyError** – 如果子Cell的名称不正确或与其他子Cell名称重复。 + - **TypeError** – 如果子Cell的类型不正确。 + .. py:method:: insert_param_to_cell(param_name, param, check_name=True) - .. py:method:: insert_child_to_cell(child_name, child_cell) + 向当前Cell添加参数。 - 将一个给定名称的子Cell添加到当前Cell。 + 将指定名称的参数插入Cell。目前在 `mindspore.nn.Cell.__setattr__` 中使用。 - **参数**: + **参数:** - - **child_name** (`str`) – 子Cell名称。 - - **child_cell** (`Cell`) – 要插入的子Cell。 + - **param_name** (`str`) – 参数名称。 + - **param** (`Parameter`) – 要插入到Cell的参数。 + - **check_name** (`bool`) – 是否对 `param_name` 中的"."进行检查。默认值:True。 - **异常**: + **异常:** - - **KeyError** – 如果子Cell的名称不正确或与其他子Cell名称重复。 - - **TypeError** – 如果子Cell的类型不正确。 + - **KeyError** – 如果参数名称为空或包含"."。 + - **TypeError** – 如果参数的类型不是Parameter。 - .. py:method:: insert_param_to_cell(param_name, param, check_name=True) + .. py:method:: name_cells() - 向当前Cell添加参数。 + 递归地获取一个Cell中所有子Cell的迭代器。 - 将指定名称的参数插入Cell。目前在 `mindspore.nn.Cell.__setattr__` 中使用。 + 包括Cell名称和Cell本身。 - **参数**: + **返回:** - - **param_name** (`str`) – 参数名称。 - - **param** (`Parameter`) – 要插入到Cell的参数。 - - **check_name** (`bool`) – 是否对`param_name`中的"."进行检查。默认值:True。 + Dict[String, Cell],Cell中的所有子Cell及其名称。 - **异常**: - - - **KeyError** – 如果参数名称为空或包含"."。 - - **TypeError** – 如果参数的类型不是Parameter。 - - .. py:method:: name_cells() - - 递归地获取一个Cell中所有子Cell的迭代器。 - - 包括Cell名称和Cell本身。 - - **返回**: - - Dict[String, Cell],Cell中的所有子Cell及其名称。 - - .. py:method:: parameters_and_names(name_prefix='', expand=True) + .. py:method:: parameters_and_names(name_prefix='', expand=True) 返回Cell中parameter的迭代器。 包含参数名称和参数本身。 - **参数**: - name_prefix (str): 作用域。默认值: ''。 - expand (bool): 如果为True,则递归地获取当前Cell和所有子Cell的参数及名称;如果为False,只生成当前Cell的子Cell的参数及名称。默认值:True. + **参数:** - **返回**: - 迭代器,Cell的名称和Cell本身。 + - **name_prefix** (str): 作用域。默认值: ''。 + - **expand** (bool): 如果为True,则递归地获取当前Cell和所有子Cell的参数及名称;如果为False,只生成当前Cell的子Cell的参数及名称。默认值:True. - **样例**: - >>> n = Net() - >>> names = [] - >>> for m in n.parameters_and_names(): - ... if m[0]: - ... names.append(m[0]) + **返回:** - .. py:property:: param_prefix + 迭代器,Cell的名称和Cell本身。 - 当前Cell的子Cell的参数名前缀。 + **样例:** - .. py:method:: parameters_dict(recurse=True) + >>> n = Net() + >>> names = [] + >>> for m in n.parameters_and_names(): + ... if m[0]: + ... names.append(m[0]) - 获取此Cell的parameter字典。 + .. py:method:: param_prefix + :property: - **参数**: + 当前Cell的子Cell的参数名前缀。 - **recurse** (`bool`) – 是否递归得包含所有子Cell的parameter。默认值:True。 + .. py:method:: parameters_dict(recurse=True) - **返回**: + 获取此Cell的parameter字典。 - OrderedDict类型,返回参数字典。 + **参数:** - .. py:method:: remove_redundant_parameters() + **recurse** (`bool`) – 是否递归得包含所有子Cell的parameter。默认值:True。 - 删除冗余参数。 + **返回:** - 这个接口通常不需要显式调用。 + OrderedDict类型,返回参数字典。 - .. py:method:: set_comm_fusion(fusion_type, recurse=True) + .. py:method:: remove_redundant_parameters() - 为Cell中的参数设置融合类型。请参考 :class:`mindspore.Parameter.comm_fusion` 的描述。 + 删除冗余参数。 - .. note:: 当函数被多次调用时,此属性值将被重写。 + 这个接口通常不需要显式调用。 - **参数**: + .. py:method:: set_comm_fusion(fusion_type, recurse=True) - - **fusion_type** (`int`) – Parameter的`comm_fusion` 属性的设置值。 - - **recurse** (`bool`) – 是否递归地设置子Cell的可训练参数。默认值:True。 + 为Cell中的参数设置融合类型。请参考 :class:`mindspore.Parameter.comm_fusion` 的描述。 - .. py:method:: set_grad(requires_grad=True) + .. note:: 当函数被多次调用时,此属性值将被重写。 - Cell的梯度设置。在PyNative模式下,该参数指定Cell是否需要梯度。如果为True,则在执行正向网络时,将生成需要计算梯度的反向网络。 + **参数:** - **参数**: + - **fusion_type** (`int`) – Parameter的 `comm_fusion` 属性的设置值。 + - **recurse** (`bool`) – 是否递归地设置子Cell的可训练参数。默认值:True。 - **requires_grad** (`bool`) – 指定网络是否需要梯度,如果为True,PyNative模式下Cell将构建反向网络。默认值:True。 + .. py:method:: set_grad(requires_grad=True) - **返回**: + Cell的梯度设置。在PyNative模式下,该参数指定Cell是否需要梯度。如果为True,则在执行正向网络时,将生成需要计算梯度的反向网络。 - Cell类型,Cell本身。 + **参数:** - .. py:method:: set_train(mode=True) + **requires_grad** (`bool`) – 指定网络是否需要梯度,如果为True,PyNative模式下Cell将构建反向网络。默认值:True。 - 将Cell设置为训练模式。 + **返回:** - 设置当前Cell和所有子Cell的训练模式。对于训练和预测具有不同结构的网络层(如 `BatchNorm`),将通过这个属性区分分支。如果设置为True,则执行训练分支,否则执行另一个分支。 + Cell类型,Cell本身。 - **参数**: + .. py:method:: set_train(mode=True) - **mode** (`bool`) – 指定模型是否为训练模式。默认值:True。 + 将Cell设置为训练模式。 - **返回**: + 设置当前Cell和所有子Cell的训练模式。对于训练和预测具有不同结构的网络层(如 `BatchNorm`),将通过这个属性区分分支。如果设置为True,则执行训练分支,否则执行另一个分支。 - Cell类型,Cell本身。 + **参数:** - .. py:method:: to_float(dst_type) + **mode** (`bool`) – 指定模型是否为训练模式。默认值:True。 - 在Cell和所有子Cell的输入上添加类型转换,以使用特定的浮点类型运行。 + **返回:** - 如果 `dst_type` 是 `mindspore.dtype.float16` ,Cell的所有输入(包括作为常量的input, Parameter, Tensor)都会被转换为float16。请参考 `mindspore.build_train_network` 的源代码中的用法。 + Cell类型,Cell本身。 - .. note:: 多次调用将产生覆盖。 + .. py:method:: to_float(dst_type) - **参数**: + 在Cell和所有子Cell的输入上添加类型转换,以使用特定的浮点类型运行。 - **dst_type** (`mindspore.dtype`) – Cell转换为 `dst_type` 类型运行。 `dst_type` 可以是 `mindspore.dtype.float16` 或者 `mindspore.dtype.float32` 。 + 如果 `dst_type` 是 `mindspore.dtype.float16` ,Cell的所有输入(包括作为常量的input, Parameter, Tensor)都会被转换为float16。请参考 `mindspore.build_train_network` 的源代码中的用法。 - **返回**: + .. note:: 多次调用将产生覆盖。 - Cell类型,Cell本身。 + **参数:** - **异常**: + **dst_type** (`mindspore.dtype`) – Cell转换为 `dst_type` 类型运行。 `dst_type` 可以是 `mindspore.dtype.float16` 或者 `mindspore.dtype.float32` 。 - **ValueError** – 如果 `dst_type` 不是 `mindspore.dtype.float32` ,也不是`mindspore.dtype.float16`。 + **返回:** - .. py:method:: trainable_params(recurse=True) + Cell类型,Cell本身。 - 返回Cell的可训练参数。 + **异常:** - 返回一个可训练参数的列表。 + **ValueError** – 如果 `dst_type` 不是 `mindspore.dtype.float32` ,也不是 `mindspore.dtype.float16`。 - **参数**: + .. py:method:: trainable_params(recurse=True) - **recurse** (`bool`) – 是否递归地包含当前Cell的所有子Cell的可训练参数。默认值:True。 + 返回Cell的可训练参数。 - **返回**: + 返回一个可训练参数的列表。 - List类型,可训练参数列表。 + **参数:** - .. py:method:: untrainable_params(recurse=True) + **recurse** (`bool`) – 是否递归地包含当前Cell的所有子Cell的可训练参数。默认值:True。 - 返回Cell的不可训练参数。 + **返回:** - 返回一个不可训练参数的列表。 + List类型,可训练参数列表。 - **参数**: + .. py:method:: untrainable_params(recurse=True) - **recurse** (`bool`) – 是否递归地包含当前Cell的所有子Cell的不可训练参数。默认值:True。 + 返回Cell的不可训练参数。 - **返回**: + 返回一个不可训练参数的列表。 - List类型,不可训练参数列表。 + **参数:** - .. py:method:: update_cell_prefix() + **recurse** (`bool`) – 是否递归地包含当前Cell的所有子Cell的不可训练参数。默认值:True。 - 递归地更新所有子Cell的 `param_prefix` 。 + **返回:** - 在调用此方法后,可以通过Cell的 `param_prefix` 属性获取该Cell的所有子Cell的名称前缀。 + List类型,不可训练参数列表。 - .. py:method:: update_cell_type(cell_type) + .. py:method:: update_cell_prefix() - 量化感知训练网络场景下,更新当前Cell的类型。 + 递归地更新所有子Cell的 `param_prefix` 。 - 此方法将Cell类型设置为 `cell_type` 。 + 在调用此方法后,可以通过Cell的 `param_prefix` 属性获取该Cell的所有子Cell的名称前缀。 - **参数**: + .. py:method:: update_cell_type(cell_type) - **cell_type** (str) – 被更新的类型,`cell_type` 可以是"quant"或"second-order"。 + 量化感知训练网络场景下,更新当前Cell的类型。 - .. py:method:: update_parameters_name(prefix="", recurse=True) + 此方法将Cell类型设置为 `cell_type` 。 - 给网络参数名称添加 `prefix` 前缀字符串。 + **参数:** - **参数**: + **cell_type** (str) – 被更新的类型,`cell_type` 可以是"quant"或"second-order"。 - - **prefix** (`str`) – 前缀字符串。默认值:''。 - - **recurse** (`bool`) – 是否递归地包含所有子Cell的参数。默认值:True。 + .. py:method:: update_parameters_name(prefix="", recurse=True) + + 给网络参数名称添加 `prefix` 前缀字符串。 + + **参数:** + + - **prefix** (`str`) – 前缀字符串。默认值:''。 + - **recurse** (`bool`) – 是否递归地包含所有子Cell的参数。默认值:True。