modify the format of API files
This commit is contained in:
parent
3f6d4aed6d
commit
969d0b2e25
|
@ -5,39 +5,34 @@ mindspore.FixedLossScaleManager
|
||||||
|
|
||||||
损失缩放系数不变的管理器,继承自 :class:`mindspore.LossScaleManager` 。
|
损失缩放系数不变的管理器,继承自 :class:`mindspore.LossScaleManager` 。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **loss_scale** (float) - 梯度放大系数。注:如果将 `drop_overflow_update` 设为False,则定义优化器时需要将优化器的 `loss_scale` 设为相同的值。默认值:128.0。
|
||||||
- **loss_scale** (float) - 梯度放大系数。注:如果将 `drop_overflow_update` 设为False,则定义优化器时需要将优化器的 `loss_scale` 设为相同的值。默认值:128.0。
|
- **drop_overflow_update** (bool) - 出现溢出时,是否执行优化器。如果值为True,则出现溢出时不会执行优化器。默认值:True。
|
||||||
- **drop_overflow_update** (bool) - 出现溢出时,是否执行优化器。如果值为True,则出现溢出时不会执行优化器。默认值:True。
|
|
||||||
|
|
||||||
.. py:method:: get_drop_overflow_update()
|
.. py:method:: get_drop_overflow_update()
|
||||||
|
|
||||||
返回 `drop_overflow_update` ,该值表示是否在发生溢出时放弃本轮参数更新。
|
返回 `drop_overflow_update` ,该值表示是否在发生溢出时放弃本轮参数更新。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
bool,`drop_overflow_update` 的值。
|
||||||
bool, `drop_overflow_update` 的值。
|
|
||||||
|
|
||||||
.. py:method:: get_loss_scale()
|
.. py:method:: get_loss_scale()
|
||||||
|
|
||||||
获取loss scale值。
|
获取loss scale值。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
bool,`loss_scale` 的值。
|
||||||
bool,`loss_scale` 的值。
|
|
||||||
|
|
||||||
.. py:method:: get_update_cell()
|
.. py:method:: get_update_cell()
|
||||||
|
|
||||||
返回用于更新 `loss_scale` 值的 `Cell` 实例, :class:`mindspore.nn.TrainOneStepWithLossScaleCell` 会调用该实例。该类使用固定的梯度放大系数,因此该实例不执行任何操作。
|
返回用于更新 `loss_scale` 值的 `Cell` 实例, :class:`mindspore.nn.TrainOneStepWithLossScaleCell` 会调用该实例。该类使用固定的梯度放大系数,因此该实例不执行任何操作。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
None或 `Cell` 。当 `drop_overflow_update` 为True时,返回 :class:`mindspore.nn.FixedLossScaleUpdateCell` 实例,当 `drop_overflow_update` 为False时,返回None。
|
||||||
None或 `Cell` 。当 `drop_overflow_update` 为True时,返回 :class:`mindspore.nn.FixedLossScaleUpdateCell` 实例,当 `drop_overflow_update` 为False时,返回None。
|
|
||||||
|
|
||||||
.. py:method:: update_loss_scale(overflow)
|
.. py:method:: update_loss_scale(overflow)
|
||||||
|
|
||||||
更新loss scale值。类 :class:`mindspore.FixedLossScaleManager` 中,该方法不执行任何操作。
|
更新loss scale值。类 :class:`mindspore.FixedLossScaleManager` 中,该方法不执行任何操作。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **overflow** (bool) - 表示是否溢出。
|
||||||
- **overflow** (bool) - 表示是否溢出。
|
|
||||||
|
|
|
@ -14,14 +14,12 @@ mindspore.History
|
||||||
|
|
||||||
训练开始时初始化History对象的epoch属性。
|
训练开始时初始化History对象的epoch属性。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **run_context** (RunContext) - 包含模型的一些基本信息。详情请参考 :class:`mindspore.RunContext`。
|
||||||
- **run_context** (RunContext) - 包含模型的一些基本信息。详情请参考 :class:`mindspore.RunContext`。
|
|
||||||
|
|
||||||
.. py:method:: epoch_end(run_context)
|
.. py:method:: epoch_end(run_context)
|
||||||
|
|
||||||
epoch结束时记录网络输出和评估指标的相关信息。
|
epoch结束时记录网络输出和评估指标的相关信息。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **run_context** (RunContext) - 包含模型的一些基本信息。详情请参考 :class:`mindspore.RunContext`。
|
||||||
- **run_context** (RunContext) - 包含模型的一些基本信息。详情请参考 :class:`mindspore.RunContext`。
|
|
||||||
|
|
|
@ -8,13 +8,12 @@ mindspore.JitConfig
|
||||||
.. note::
|
.. note::
|
||||||
- 这是一个实验性接口,后续可能删除或修改。
|
- 这是一个实验性接口,后续可能删除或修改。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **jit_level** (str) - 设置编译优化的级别,支持["O0", "O1", "O2"]。默认值:"O1"。
|
||||||
|
|
||||||
- **jit_level** (str) - 设置编译优化的级别,支持["O0", "O1", "O2"]。默认值: "O1"。
|
- "O0": 基础优化。
|
||||||
|
- "O1": 手动优化。
|
||||||
|
- "O2": 手动优化与图算优化结合。
|
||||||
|
|
||||||
- "O0": 基础优化。
|
- **task_sink** (bool) - 数据是否直接下沉至处理器进行处理。默认值:True。
|
||||||
- "O1": 手动优化。
|
- **kwargs** (dict) - 关键字参数字典。
|
||||||
- "O2": 手动优化与图算优化结合。
|
|
||||||
|
|
||||||
- **task_sink** (bool) - 数据是否直接下沉至处理器进行处理。默认值:True。
|
|
||||||
- **kwargs** (dict) - 关键字参数字典。
|
|
||||||
|
|
|
@ -12,17 +12,16 @@ mindspore.LambdaCallback
|
||||||
.. note::
|
.. note::
|
||||||
- 这是一个会变更或删除的实验性接口。
|
- 这是一个会变更或删除的实验性接口。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **on_train_epoch_begin** (Function) - 训练每个epoch开始时被调用。
|
||||||
- **on_train_epoch_begin** (Function) - 训练每个epoch开始时被调用。
|
- **on_train_epoch_end** (Function) - 训练每个epoch结束时被调用。
|
||||||
- **on_train_epoch_end** (Function) - 训练每个epoch结束时被调用。
|
- **on_train_step_begin** (Function) - 训练每个step开始时被调用。
|
||||||
- **on_train_step_begin** (Function) - 训练每个step开始时被调用。
|
- **on_train_step_end** (Function) - 训练每个step结束时被调用。
|
||||||
- **on_train_step_end** (Function) - 训练每个step结束时被调用。
|
- **on_train_begin** (Function) - 模型训练开始时被调用。
|
||||||
- **on_train_begin** (Function) - 模型训练开始时被调用。
|
- **on_train_end** (Function) - 模型训练结束时被调用。
|
||||||
- **on_train_end** (Function) - 模型训练结束时被调用。
|
- **on_eval_epoch_begin** (Function) - 推理的epoch开始时被调用。
|
||||||
- **on_eval_epoch_begin** (Function) - 推理的epoch开始时被调用。
|
- **on_eval_epoch_end** (Function) - 推理的epoch结束时被调用。
|
||||||
- **on_eval_epoch_end** (Function) - 推理的epoch结束时被调用。
|
- **on_eval_step_begin** (Function) - 推理的每个step开始时被调用。
|
||||||
- **on_eval_step_begin** (Function) - 推理的每个step开始时被调用。
|
- **on_eval_step_end** (Function) - 推理的每个step结束时被调用。
|
||||||
- **on_eval_step_end** (Function) - 推理的每个step结束时被调用。
|
- **on_eval_begin** (Function) - 模型推理开始时被调用。
|
||||||
- **on_eval_begin** (Function) - 模型推理开始时被调用。
|
- **on_eval_end** (Function) - 模型推理结束时被调用。
|
||||||
- **on_eval_end** (Function) - 模型推理结束时被调用。
|
|
||||||
|
|
|
@ -5,14 +5,12 @@ mindspore.LearningRateScheduler
|
||||||
|
|
||||||
用于在训练期间更改学习率。
|
用于在训练期间更改学习率。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **learning_rate_function** (Function) - 在训练期间更改学习率的函数。
|
||||||
- **learning_rate_function** (Function) - 在训练期间更改学习率的函数。
|
|
||||||
|
|
||||||
.. py:method:: step_end(run_context)
|
.. py:method:: step_end(run_context)
|
||||||
|
|
||||||
在step结束时更改学习率。
|
在step结束时更改学习率。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **run_context** (RunContext) - 包含模型的一些基本信息。
|
||||||
- **run_context** (RunContext) - 包含模型的一些基本信息。
|
|
||||||
|
|
|
@ -10,26 +10,22 @@ mindspore.LossMonitor
|
||||||
.. note::
|
.. note::
|
||||||
如果 `per_print_times` 为0,则不打印loss。
|
如果 `per_print_times` 为0,则不打印loss。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **per_print_times** (int) - 表示每隔多少个step打印一次loss。默认值:1。
|
||||||
|
|
||||||
- **per_print_times** (int) - 表示每隔多少个step打印一次loss。默认值:1。
|
异常:
|
||||||
|
- **ValueError** - 当 `per_print_times` 不是整数或小于零。
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **ValueError** - 当 `per_print_times` 不是整数或小于零。
|
|
||||||
|
|
||||||
.. py:method:: step_end(run_context)
|
.. py:method:: step_end(run_context)
|
||||||
|
|
||||||
step结束时打印训练loss。
|
step结束时打印训练loss。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
|
||||||
|
|
||||||
.. py:method:: on_train_epoch_end(run_context)
|
.. py:method:: on_train_epoch_end(run_context)
|
||||||
|
|
||||||
LossMoniter用于 `model.fit`,即边训练边推理场景时,打印训练的loss和当前epoch推理的metrics。
|
LossMoniter用于 `model.fit`,即边训练边推理场景时,打印训练的loss和当前epoch推理的metrics。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
|
||||||
|
|
|
@ -21,6 +21,5 @@ mindspore.LossScaleManager
|
||||||
|
|
||||||
根据 `overflow` 状态更新梯度放大系数(loss scale)。
|
根据 `overflow` 状态更新梯度放大系数(loss scale)。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **overflow** (bool) - 表示训练过程是否溢出。
|
||||||
- **overflow** (bool) - 表示训练过程是否溢出。
|
|
|
@ -9,34 +9,33 @@
|
||||||
如果使用混合精度功能,需要同时设置 `optimizer` 参数,否则混合精度功能不生效。
|
如果使用混合精度功能,需要同时设置 `optimizer` 参数,否则混合精度功能不生效。
|
||||||
当使用混合精度时,优化器中的 `global_step` 可能与模型中的 `cur_step_num` 不同。
|
当使用混合精度时,优化器中的 `global_step` 可能与模型中的 `cur_step_num` 不同。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **network** (Cell) - 用于训练或推理的神经网络。
|
||||||
|
- **loss_fn** (Cell) - 损失函数。如果 `loss_fn` 为None,`network` 中需要进行损失函数计算,必要时也需要进行并行计算。默认值:None。
|
||||||
|
- **optimizer** (Cell) - 用于更新网络权重的优化器。如果 `optimizer` 为None, `network` 中需要进行反向传播和网络权重更新。默认值:None。
|
||||||
|
- **metrics** (Union[dict, set]) - 用于模型评估的一组评价函数。例如:{'accuracy', 'recall'}。默认值:None。
|
||||||
|
- **eval_network** (Cell) - 用于评估的神经网络。未定义情况下,`Model` 会使用 `network` 和 `loss_fn` 封装一个 `eval_network` 。默认值:None。
|
||||||
|
- **eval_indexes** (list) - 在定义 `eval_network` 的情况下使用。如果 `eval_indexes` 为默认值None,`Model` 会将 `eval_network` 的所有输出传给 `metrics` 。如果配置 `eval_indexes` ,必须包含三个元素,分别为损失值、预测值和标签在 `eval_network` 输出中的位置,此时,损失值将传给损失评价函数,预测值和标签将传给其他评价函数。推荐使用评价函数的 `mindspore.nn.Metric.set_indexes` 代替 `eval_indexes` 。默认值:None。
|
||||||
|
- **amp_level** (str) - `mindspore.build_train_network` 的可选参数 `level` , `level` 为混合精度等级,该参数支持["O0", "O2", "O3", "auto"]。默认值:"O0"。
|
||||||
|
|
||||||
- **network** (Cell) – 用于训练或推理的神经网络。
|
- "O0": 不变化。
|
||||||
- **loss_fn** (Cell) - 损失函数。如果 `loss_fn` 为None,`network` 中需要进行损失函数计算,必要时也需要进行并行计算。默认值:None。
|
- "O2": 将网络精度转为float16,BatchNorm保持float32精度,使用动态调整损失缩放系数(loss scale)的策略。
|
||||||
- **optimizer** (Cell) - 用于更新网络权重的优化器。如果 `optimizer` 为None, `network` 中需要进行反向传播和网络权重更新。默认值:None。
|
- "O3": 将网络精度(包括BatchNorm)转为float16,不使用损失缩放策略。
|
||||||
- **metrics** (Union[dict, set]) - 用于模型评估的一组评价函数。例如:{'accuracy', 'recall'}。默认值:None。
|
- auto: 为不同处理器设置专家推荐的混合精度等级,如在GPU上设为"O2",在Ascend上设为"O3"。该设置方式可能在部分场景下不适用,建议用户根据具体的网络模型自定义设置 `amp_level` 。
|
||||||
- **eval_network** (Cell) - 用于评估的神经网络。未定义情况下,`Model` 会使用 `network` 和 `loss_fn` 封装一个 `eval_network` 。默认值:None。
|
|
||||||
- **eval_indexes** (list) - 在定义 `eval_network` 的情况下使用。如果 `eval_indexes` 为默认值None,`Model` 会将 `eval_network` 的所有输出传给 `metrics` 。如果配置 `eval_indexes` ,必须包含三个元素,分别为损失值、预测值和标签在 `eval_network` 输出中的位置,此时,损失值将传给损失评价函数,预测值和标签将传给其他评价函数。推荐使用评价函数的 `mindspore.nn.Metric.set_indexes` 代替 `eval_indexes` 。默认值:None。
|
|
||||||
- **amp_level** (str) - `mindspore.build_train_network` 的可选参数 `level` , `level` 为混合精度等级,该参数支持["O0", "O2", "O3", "auto"]。默认值:"O0"。
|
|
||||||
|
|
||||||
- "O0": 不变化。
|
在GPU上建议使用"O2",在Ascend上建议使用"O3"。
|
||||||
- "O2": 将网络精度转为float16,BatchNorm保持float32精度,使用动态调整损失缩放系数(loss scale)的策略。
|
通过 `kwargs` 设置 `keep_batchnorm_fp32` ,可修改BatchNorm的精度策略, `keep_batchnorm_fp32` 必须为bool类型;通过 `kwargs` 设置 `loss_scale_manager` 可修改损失缩放策略,`loss_scale_manager` 必须为 :class:`mindspore.LossScaleManager` 的子类,
|
||||||
- "O3": 将网络精度(包括BatchNorm)转为float16,不使用损失缩放策略。
|
关于 `amp_level` 详见 `mindpore.build_train_network` 。
|
||||||
- auto: 为不同处理器设置专家推荐的混合精度等级,如在GPU上设为"O2",在Ascend上设为"O3"。该设置方式可能在部分场景下不适用,建议用户根据具体的网络模型自定义设置 `amp_level` 。
|
|
||||||
|
|
||||||
在GPU上建议使用"O2",在Ascend上建议使用"O3"。
|
- **boost_level** (str) - `mindspore.boost` 的可选参数,为boost模式训练等级。支持["O0", "O1", "O2"]. 默认值:"O0"。
|
||||||
通过 `kwargs` 设置 `keep_batchnorm_fp32` ,可修改BatchNorm的精度策略, `keep_batchnorm_fp32` 必须为bool类型;通过 `kwargs` 设置 `loss_scale_manager` 可修改损失缩放策略,`loss_scale_manager` 必须为 :class:`mindspore.LossScaleManager` 的子类,
|
|
||||||
关于 `amp_level` 详见 `mindpore.build_train_network` 。
|
|
||||||
|
|
||||||
- **boost_level** (str) – `mindspore.boost` 的可选参数, 为boost模式训练等级。支持[“O0”, “O1”, “O2”]. 默认值: “O0”.
|
- "O0": 不变化。
|
||||||
|
- "O1": 启用boost模式,性能将提升约20%,准确率保持不变。
|
||||||
|
- "O2": 启用boost模式,性能将提升约30%,准确率下降小于3%。
|
||||||
|
|
||||||
- "O0": 不变化。
|
如果想自行配置boost模式,可以将 `boost_config_dict` 设置为 `boost.py`。
|
||||||
- "O1": 启用boost模式, 性能将提升约20%, 准确率保持不变。
|
为使功能生效,需要同时设置optimizer、eval_network或metric参数。
|
||||||
- "O2": 启用boost模式, 性能将提升约30%, 准确率下降小于3%。
|
注意:当前默认开启的优化仅适用部分网络,并非所有网络都能获得相同收益。建议在图模式+Ascend平台下开启该模式,同时为了获取更好的加速效果,请参考文档配置boost_config_dict。
|
||||||
|
|
||||||
如果想自行配置boost模式, 可以将 `boost_config_dict` 设置为 `boost.py`。
|
|
||||||
为使功能生效,需要同时设置optimizer、eval_network或metric参数。
|
|
||||||
注意:当前默认开启的优化仅适用部分网络,并非所有网络都能获得相同收益。建议在图模式+Ascend平台下开启该模式,同时为了获取更好的加速效果,请参考文档配置boost_config_dict。
|
|
||||||
|
|
||||||
.. py:method:: build(train_dataset=None, valid_dataset=None, sink_size=-1, epoch=1)
|
.. py:method:: build(train_dataset=None, valid_dataset=None, sink_size=-1, epoch=1)
|
||||||
|
|
||||||
|
@ -46,12 +45,11 @@
|
||||||
|
|
||||||
.. note:: 如果预先调用该接口构建计算图,那么 `Model.train` 会直接执行计算图。预构建计算图目前仅支持GRAPH_MOD模式和Ascend处理器,仅支持数据下沉模式。
|
.. note:: 如果预先调用该接口构建计算图,那么 `Model.train` 会直接执行计算图。预构建计算图目前仅支持GRAPH_MOD模式和Ascend处理器,仅支持数据下沉模式。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **train_dataset** (Dataset) - 一个训练集迭代器。如果定义了 `train_dataset` ,将会构建训练计算图。默认值:None。
|
||||||
- **train_dataset** (Dataset) – 一个训练集迭代器。如果定义了 `train_dataset` ,将会构建训练计算图。默认值:None。
|
- **valid_dataset** (Dataset) - 一个验证集迭代器。如果定义了 `valid_dataset` ,将会构建验证计算图,此时 `Model` 中的 `metrics` 不能为None。默认值:None。
|
||||||
- **valid_dataset** (Dataset) - 一个验证集迭代器。如果定义了 `valid_dataset` ,将会构建验证计算图,此时 `Model` 中的 `metrics` 不能为None。默认值:None。
|
- **sink_size** (int) - 控制每次数据下沉的数据量。默认值:-1。
|
||||||
- **sink_size** (int) - 控制每次数据下沉的数据量。默认值:-1。
|
- **epoch** (int) - 控制训练轮次。默认值:1。
|
||||||
- **epoch** (int) - 控制训练轮次。默认值:1。
|
|
||||||
|
|
||||||
.. py:method:: eval(valid_dataset, callbacks=None, dataset_sink_mode=True)
|
.. py:method:: eval(valid_dataset, callbacks=None, dataset_sink_mode=True)
|
||||||
|
|
||||||
|
@ -63,24 +61,21 @@
|
||||||
如果 `dataset_sink_mode` 配置为True,数据将被发送到处理器中。此时数据集与模型绑定,数据集仅能在当前模型中使用。如果处理器是Ascend,数据特征将被逐一传输,每次数据传输的上限是256M。
|
如果 `dataset_sink_mode` 配置为True,数据将被发送到处理器中。此时数据集与模型绑定,数据集仅能在当前模型中使用。如果处理器是Ascend,数据特征将被逐一传输,每次数据传输的上限是256M。
|
||||||
该接口会构建并执行计算图,如果使用前先执行了 `Model.build` ,那么它会直接执行计算图而不构建。
|
该接口会构建并执行计算图,如果使用前先执行了 `Model.build` ,那么它会直接执行计算图而不构建。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **valid_dataset** (Dataset) - 评估模型的数据集。
|
||||||
|
- **callbacks** (Optional[list(Callback), Callback]) - 评估过程中需要执行的回调对象或回调对象列表。默认值:None。
|
||||||
|
- **dataset_sink_mode** (bool) - 数据是否直接下沉至处理器进行处理。默认值:True。
|
||||||
|
|
||||||
- **valid_dataset** (Dataset) – 评估模型的数据集。
|
返回:
|
||||||
- **callbacks** (Optional[list(Callback), Callback]) - 评估过程中需要执行的回调对象或回调对象列表。默认值:None。
|
Dict,key是用户定义的评价指标名称,value是以推理模式运行的评估结果。
|
||||||
- **dataset_sink_mode** (bool) - 数据是否直接下沉至处理器进行处理。默认值:True。
|
|
||||||
|
|
||||||
**返回:**
|
|
||||||
|
|
||||||
Dict,key是用户定义的评价指标名称,value是以推理模式运行的评估结果。
|
|
||||||
|
|
||||||
.. py:method:: eval_network
|
.. py:method:: eval_network
|
||||||
:property:
|
:property:
|
||||||
|
|
||||||
获取该模型的评价网络。
|
获取该模型的评价网络。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
评估网络实例。
|
||||||
评估网络实例。
|
|
||||||
|
|
||||||
.. py:method:: infer_predict_layout(*predict_data)
|
.. py:method:: infer_predict_layout(*predict_data)
|
||||||
|
|
||||||
|
@ -88,17 +83,14 @@
|
||||||
|
|
||||||
.. note:: 同一批次数据应放在一个张量中。
|
.. note:: 同一批次数据应放在一个张量中。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **predict_data** (Tensor) - 预测样本,数据可以是单个张量、张量列表或张量元组。
|
||||||
|
|
||||||
- **predict_data** (Tensor) – 预测样本,数据可以是单个张量、张量列表或张量元组。
|
返回:
|
||||||
|
Dict,用于加载分布式checkpoint的参数layout字典。它总是作为 `load_distributed_checkpoint()` 函数的一个入参。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **RuntimeError** - 非图模式(GRAPH_MODE)将会抛出该异常。
|
||||||
Dict,用于加载分布式checkpoint的参数layout字典。它总是作为 `load_distributed_checkpoint()` 函数的一个入参。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **RuntimeError** – 非图模式(GRAPH_MODE)将会抛出该异常。
|
|
||||||
|
|
||||||
.. py:method:: infer_train_layout(train_dataset, dataset_sink_mode=True, sink_size=-1)
|
.. py:method:: infer_train_layout(train_dataset, dataset_sink_mode=True, sink_size=-1)
|
||||||
|
|
||||||
|
@ -108,36 +100,31 @@
|
||||||
|
|
||||||
.. note:: 这是一个预编译函数。参数必须与Model.train()函数相同。
|
.. 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。
|
||||||
|
|
||||||
- **train_dataset** (Dataset) – 一个训练数据集迭代器。如果没有损失函数(loss_fn),返回一个包含多个数据的元组(data1, data2, data3, ...)并传递给网络。否则,返回一个元组(data, label),数据和标签将被分别传递给网络和损失函数。
|
返回:
|
||||||
- **dataset_sink_mode** (bool) – 决定是否以数据集下沉模式进行训练。默认值:True。PyNative模式下或处理器为CPU时,训练模型流程使用的是数据不下沉(non-sink)模式。默认值:True。
|
Dict,用于加载分布式checkpoint的参数layout字典。
|
||||||
- **sink_size** (int) – 控制每次数据下沉的数据量,如果 `sink_size` =-1,则每一次epoch下沉完整数据集。如果 `sink_size` >0,则每一次epoch下沉数据量为 `sink_size` 的数据集。如果 `dataset_sink_mode` 为False,则设置 `sink_size` 为无效。默认值:-1。
|
|
||||||
|
|
||||||
**返回:**
|
|
||||||
|
|
||||||
Dict,用于加载分布式checkpoint的参数layout字典。
|
|
||||||
|
|
||||||
.. py:method:: predict(*predict_data)
|
.. py:method:: predict(*predict_data)
|
||||||
|
|
||||||
输入样本得到预测结果。
|
输入样本得到预测结果。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **predict_data** (Tensor) - 预测样本,数据可以是单个张量、张量列表或张量元组。
|
||||||
|
|
||||||
**predict_data** (Tensor) – 预测样本,数据可以是单个张量、张量列表或张量元组。
|
返回:
|
||||||
|
返回预测结果,类型是Tensor或Tensor元组。
|
||||||
**返回:**
|
|
||||||
|
|
||||||
返回预测结果,类型是Tensor或Tensor元组。
|
|
||||||
|
|
||||||
.. py:method:: predict_network
|
.. py:method:: predict_network
|
||||||
:property:
|
:property:
|
||||||
|
|
||||||
获得该模型的预测网络。
|
获得该模型的预测网络。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
预测网络实例。
|
||||||
预测网络实例。
|
|
||||||
|
|
||||||
.. py:method:: train(epoch, train_dataset, callbacks=None, dataset_sink_mode=True, sink_size=-1, initial_epoch=0)
|
.. py:method:: train(epoch, train_dataset, callbacks=None, dataset_sink_mode=True, sink_size=-1, initial_epoch=0)
|
||||||
|
|
||||||
|
@ -152,14 +139,13 @@
|
||||||
- 如果 `sink_size` 大于零,每次epoch可以无限次遍历数据集,直到遍历数据量等于 `sink_size` 为止。
|
- 如果 `sink_size` 大于零,每次epoch可以无限次遍历数据集,直到遍历数据量等于 `sink_size` 为止。
|
||||||
- 每次epoch将从上一次遍历的最后位置继续开始遍历。该接口会构建并执行计算图,如果使用前先执行了 `Model.build` ,那么它会直接执行计算图而不构建。
|
- 每次epoch将从上一次遍历的最后位置继续开始遍历。该接口会构建并执行计算图,如果使用前先执行了 `Model.build` ,那么它会直接执行计算图而不构建。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **epoch** (int) - 训练执行轮次。通常每个epoch都会使用全量数据集进行训练。当 `dataset_sink_mode` 设置为True且 `sink_size` 大于零时,则每个epoch训练次数为 `sink_size` 而不是数据集的总步数。如果 `epoch` 与 `initial_epoch` 一起使用,它表示训练的最后一个 `epoch` 是多少。
|
||||||
- **epoch** (int) – 训练执行轮次。通常每个epoch都会使用全量数据集进行训练。当 `dataset_sink_mode` 设置为True且 `sink_size` 大于零时,则每个epoch训练次数为 `sink_size` 而不是数据集的总步数。如果 `epoch` 与 `initial_epoch` 一起使用,它表示训练的最后一个 `epoch` 是多少。
|
- **train_dataset** (Dataset) - 一个训练数据集迭代器。如果定义了 `loss_fn` ,则数据和标签会被分别传给 `network` 和 `loss_fn` ,此时数据集需要返回一个元组(data, label)。如果数据集中有多个数据或者标签,可以设置 `loss_fn` 为None,并在 `network` 中实现损失函数计算,此时数据集返回的所有数据组成的元组(data1, data2, data3, ...)会传给 `network` 。
|
||||||
- **train_dataset** (Dataset) – 一个训练数据集迭代器。如果定义了 `loss_fn` ,则数据和标签会被分别传给 `network` 和 `loss_fn` ,此时数据集需要返回一个元组(data, label)。如果数据集中有多个数据或者标签,可以设置 `loss_fn` 为None,并在 `network` 中实现损失函数计算,此时数据集返回的所有数据组成的元组(data1, data2, data3, ...)会传给 `network` 。
|
- **callbacks** (Optional[list[Callback], Callback]) - 训练过程中需要执行的回调对象或者回调对象列表。默认值:None。
|
||||||
- **callbacks** (Optional[list[Callback], Callback]) – 训练过程中需要执行的回调对象或者回调对象列表。默认值:None。
|
- **dataset_sink_mode** (bool) - 数据是否直接下沉至处理器进行处理。使用PYNATIVE_MODE模式或CPU处理器时,模型训练流程将以非下沉模式执行。默认值:True。
|
||||||
- **dataset_sink_mode** (bool) – 数据是否直接下沉至处理器进行处理。使用PYNATIVE_MODE模式或CPU处理器时,模型训练流程将以非下沉模式执行。默认值:True。
|
- **sink_size** (int) - 控制每次数据下沉的数据量。`dataset_sink_mode` 为False时 `sink_size` 无效。如果sink_size=-1,则每一次epoch下沉完整数据集。如果sink_size>0,则每一次epoch下沉数据量为sink_size的数据集。默认值:-1。
|
||||||
- **sink_size** (int) – 控制每次数据下沉的数据量。`dataset_sink_mode` 为False时 `sink_size` 无效。如果sink_size=-1,则每一次epoch下沉完整数据集。如果sink_size>0,则每一次epoch下沉数据量为sink_size的数据集。默认值:-1。
|
- **initial_epoch** (int) - 从哪个epoch开始训练,一般用于中断恢复训练场景。
|
||||||
- **initial_epoch** (int) - 从哪个epoch开始训练,一般用于中断恢复训练场景。
|
|
||||||
|
|
||||||
.. py:method:: fit(epoch, train_dataset, valid_dataset=None, valid_frequency=1, callbacks=None, dataset_sink_mode=True, valid_dataset_sink_mode=True, sink_size=-1, initial_epoch=0)
|
.. py:method:: fit(epoch, train_dataset, valid_dataset=None, valid_frequency=1, callbacks=None, dataset_sink_mode=True, valid_dataset_sink_mode=True, sink_size=-1, initial_epoch=0)
|
||||||
|
|
||||||
|
@ -167,23 +153,21 @@
|
||||||
|
|
||||||
如果 `valid_dataset` 不为None,在训练过程中同时执行推理。更多详细信息请参考 `mindspore.Model.model.train`。
|
如果 `valid_dataset` 不为None,在训练过程中同时执行推理。更多详细信息请参考 `mindspore.Model.model.train`。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **epoch** (int) - 训练执行轮次。通常每个epoch都会使用全量数据集进行训练。当 `dataset_sink_mode` 设置为True且 `sink_size` 大于零时,则每个epoch训练次数为 `sink_size` 而不是数据集的总步数。如果 `epoch` 与 `initial_epoch` 一起使用,它表示训练的最后一个 `epoch` 是多少。
|
||||||
- **epoch** (int) – 训练执行轮次。通常每个epoch都会使用全量数据集进行训练。当 `dataset_sink_mode` 设置为True且 `sink_size` 大于零时,则每个epoch训练次数为 `sink_size` 而不是数据集的总步数。如果 `epoch` 与 `initial_epoch` 一起使用,它表示训练的最后一个 `epoch` 是多少。
|
- **train_dataset** (Dataset) - 训练数据集迭代器。如果定义了 `loss_fn` ,则数据和标签会被分别传给 `network` 和 `loss_fn` ,此时数据集需要返回一个元组(data, label)。如果数据集中有多个数据或者标签,可以设置 `loss_fn` 为None,并在 `network` 中实现损失函数计算,此时数据集返回的所有数据组成的元组(data1, data2, data3, ...)会传给 `network` 。
|
||||||
- **train_dataset** (Dataset) – 训练数据集迭代器。如果定义了 `loss_fn` ,则数据和标签会被分别传给 `network` 和 `loss_fn` ,此时数据集需要返回一个元组(data, label)。如果数据集中有多个数据或者标签,可以设置 `loss_fn` 为None,并在 `network` 中实现损失函数计算,此时数据集返回的所有数据组成的元组(data1, data2, data3, ...)会传给 `network` 。
|
- **valid_dataset** (Dataset) - 评估模型的数据集迭代器。默认值:None。
|
||||||
- **valid_dataset** (Dataset) – 评估模型的数据集迭代器。默认值:None。
|
- **valid_frequency** (int, list) - 此参数只有在valid_dataset不为None时生效。如果为int类型,表示执行推理的频率,例如 `valid_frequency=2`,则每2个训练epoch执行一次推理;如果为list类型,指明在哪几个epoch时执行推理,例如 `valid_frequency=[1, 5]`,则在第1个和第5个epoch执行推理。默认值:1。
|
||||||
- **valid_frequency** (int, list) – 此参数只有在valid_dataset不为None时生效。如果为int类型,表示执行推理的频率,例如 `valid_frequency=2`,则每2个训练epoch执行一次推理;如果为list类型,指明在哪几个epoch时执行推理,例如 `valid_frequency=[1, 5]`,则在第1个和第5个epoch执行推理。默认值:1。
|
- **callbacks** (Optional[list[Callback], Callback]) - 训练过程中需要执行的回调对象或者回调对象列表。默认值:None。
|
||||||
- **callbacks** (Optional[list[Callback], Callback]) – 训练过程中需要执行的回调对象或者回调对象列表。默认值:None。
|
- **dataset_sink_mode** (bool) - 训练数据是否直接下沉至处理器进行处理。使用PYNATIVE_MODE模式或CPU处理器时,模型训练流程将以非下沉模式执行。默认值:True。
|
||||||
- **dataset_sink_mode** (bool) – 训练数据是否直接下沉至处理器进行处理。使用PYNATIVE_MODE模式或CPU处理器时,模型训练流程将以非下沉模式执行。默认值:True。
|
- **valid_dataset_sink_mode** (bool) - 推理数据是否直接下沉至处理器进行处理。默认值:True。
|
||||||
- **valid_dataset_sink_mode** (bool) - 推理数据是否直接下沉至处理器进行处理。默认值:True。
|
- **sink_size** (int) - 控制每次数据下沉的数据量。`dataset_sink_mode` 为False时 `sink_size` 无效。如果sink_size=-1,则每一次epoch下沉完整数据集。如果sink_size>0,则每一次epoch下沉数据量为sink_size的数据集。默认值:-1。
|
||||||
- **sink_size** (int) – 控制每次数据下沉的数据量。`dataset_sink_mode` 为False时 `sink_size` 无效。如果sink_size=-1,则每一次epoch下沉完整数据集。如果sink_size>0,则每一次epoch下沉数据量为sink_size的数据集。默认值:-1。
|
- **initial_epoch** (int) - 从哪个epoch开始训练,一般用于中断恢复训练场景。
|
||||||
- **initial_epoch** (int) - 从哪个epoch开始训练,一般用于中断恢复训练场景。
|
|
||||||
|
|
||||||
.. py:method:: train_network
|
.. py:method:: train_network
|
||||||
:property:
|
:property:
|
||||||
|
|
||||||
获得该模型的训练网络。
|
获得该模型的训练网络。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
预测网络实例。
|
||||||
预测网络实例。
|
|
||||||
|
|
|
@ -11,26 +11,22 @@ mindspore.ModelCheckpoint
|
||||||
在分布式训练场景下,请为每个训练进程指定不同的目录来保存checkpoint文件。否则,可能会训练失败。
|
在分布式训练场景下,请为每个训练进程指定不同的目录来保存checkpoint文件。否则,可能会训练失败。
|
||||||
如何在 `model` 方法中使用此回调函数,默认将会把优化器中的参数保存到checkpoint文件中。
|
如何在 `model` 方法中使用此回调函数,默认将会把优化器中的参数保存到checkpoint文件中。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **prefix** (str) - checkpoint文件的前缀名称。默认值:'CKP'。
|
||||||
- **prefix** (str) - checkpoint文件的前缀名称。默认值:'CKP'。
|
- **directory** (str) - 保存checkpoint文件的文件夹路径。默认情况下,文件保存在当前目录下。默认值:None。
|
||||||
- **directory** (str) - 保存checkpoint文件的文件夹路径。默认情况下,文件保存在当前目录下。默认值:None。
|
- **config** (CheckpointConfig) - checkpoint策略配置。默认值:None。
|
||||||
- **config** (CheckpointConfig) - checkpoint策略配置。默认值:None。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **ValueError** - 如果prefix参数不是str类型或包含'/'字符。
|
|
||||||
- **ValueError** - 如果directory参数不是str类型。
|
|
||||||
- **TypeError** - config不是CheckpointConfig类型。
|
|
||||||
|
|
||||||
|
异常:
|
||||||
|
- **ValueError** - 如果prefix参数不是str类型或包含'/'字符。
|
||||||
|
- **ValueError** - 如果directory参数不是str类型。
|
||||||
|
- **TypeError** - config不是CheckpointConfig类型。
|
||||||
|
|
||||||
.. py:method:: end(run_context)
|
.. py:method:: end(run_context)
|
||||||
|
|
||||||
在训练结束后,会保存最后一个step的checkpoint。
|
在训练结束后,会保存最后一个step的checkpoint。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **run_context** (RunContext) - 包含模型的一些基本信息。
|
||||||
- **run_context** (RunContext) - 包含模型的一些基本信息。
|
|
||||||
|
|
||||||
.. py:method:: latest_ckpt_file_name
|
.. py:method:: latest_ckpt_file_name
|
||||||
:property:
|
:property:
|
||||||
|
@ -41,6 +37,5 @@ mindspore.ModelCheckpoint
|
||||||
|
|
||||||
在step结束时保存checkpoint。
|
在step结束时保存checkpoint。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **run_context** (RunContext) - 包含模型的一些基本信息。
|
||||||
- **run_context** (RunContext) - 包含模型的一些基本信息。
|
|
||||||
|
|
|
@ -10,13 +10,12 @@
|
||||||
- 并行场景下存在参数的形状发生变化的情况,用户可以调用 `Parameter` 的 `init_data` 方法得到原始数据。
|
- 并行场景下存在参数的形状发生变化的情况,用户可以调用 `Parameter` 的 `init_data` 方法得到原始数据。
|
||||||
- 如果网络中存在需要部分输入为 `Parameter` 的算子,则不允许这部分输入的 `Parameter` 进行转换。
|
- 如果网络中存在需要部分输入为 `Parameter` 的算子,则不允许这部分输入的 `Parameter` 进行转换。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **default_input** (Union[Tensor, int, float, numpy.ndarray, list]) - 初始化参数的输入值。
|
||||||
- **default_input** (Union[Tensor, int, float, numpy.ndarray, list]) - 初始化参数的输入值。
|
- **name** (str) - 参数的名称。默认值:None。如果一个网络中存在两个及以上相同名称的 `Parameter` 对象,在定义时将提示设置一个特有的名称。
|
||||||
- **name** (str) - 参数的名称。默认值:None。如果一个网络中存在两个及以上相同名称的 `Parameter` 对象,在定义时将提示设置一个特有的名称。
|
- **requires_grad** (bool) - 是否需要微分求梯度。默认值:True。
|
||||||
- **requires_grad** (bool) - 是否需要微分求梯度。默认值:True。
|
- **layerwise_parallel** (bool) - 在数据/混合并行模式下,`layerwise_parallel` 配置为True时,参数广播和梯度聚合时会过滤掉该参数。默认值:False。
|
||||||
- **layerwise_parallel** (bool) - 在数据/混合并行模式下,`layerwise_parallel` 配置为True时,参数广播和梯度聚合时会过滤掉该参数。默认值:False。
|
- **parallel_optimizer** (bool) - 用于在 `semi_auto_parallel` 或 `auto_parallel` 并行模式下区分参数是否进行优化器切分。仅在 `mindspore.context.set_auto_parallel_context()` 并行配置模块中设置 `enable_parallel_optimizer` 启用优化器并行时有效。默认值:True。
|
||||||
- **parallel_optimizer** (bool) - 用于在 `semi_auto_parallel` 或 `auto_parallel` 并行模式下区分参数是否进行优化器切分。仅在 `mindspore.context.set_auto_parallel_context()` 并行配置模块中设置 `enable_parallel_optimizer` 启用优化器并行时有效。默认值:True。
|
|
||||||
|
|
||||||
.. py:method:: cache_enable
|
.. py:method:: cache_enable
|
||||||
:property:
|
:property:
|
||||||
|
@ -32,13 +31,11 @@
|
||||||
|
|
||||||
克隆参数。
|
克隆参数。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **init** (Union[Tensor, str, numbers.Number]) - 初始化参数的形状和数据类型。如果 `init` 是 `Tensor` 或 `numbers.Number` ,则克隆一个具有相同数值、形状和数据类型的新参数。 如果 `init` 是 `str` ,则 `init` 将继承 `Initializer` 模块中对应的同名的类。例如,如果 `init` 是'same',则克隆一个具有相同数据、形状和数据类型的新参数。默认值:'same'。
|
||||||
|
|
||||||
- **init** (Union[Tensor, str, numbers.Number]) - 初始化参数的形状和数据类型。如果 `init` 是 `Tensor` 或 `numbers.Number` ,则克隆一个具有相同数值、形状和数据类型的新参数。 如果 `init` 是 `str` ,则 `init` 将继承 `Initializer` 模块中对应的同名的类。例如,如果 `init` 是'same',则克隆一个具有相同数据、形状和数据类型的新参数。默认值:'same'。
|
返回:
|
||||||
|
Parameter,返回克隆的新参数。
|
||||||
**返回:**
|
|
||||||
|
|
||||||
Parameter,返回克隆的新参数。
|
|
||||||
|
|
||||||
.. py:method:: comm_fusion
|
.. py:method:: comm_fusion
|
||||||
:property:
|
:property:
|
||||||
|
@ -56,28 +53,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。
|
||||||
|
|
||||||
- **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)) - 该参数的设备矩阵。
|
- **set_sliced** (bool) - 参数初始化时被设定为分片,则为True。默认值:False。
|
||||||
- **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。
|
返回:
|
||||||
|
初始化数据后的 `Parameter` 。如果当前 `Parameter` 已初始化,则更新 `Parameter` 数据。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **RuntimeError** - 参数使用 `Initializer` 模块进行初始化,初始化后并行模式发生更改。
|
||||||
初始化数据后的 `Parameter` 。如果当前 `Parameter` 已初始化,则更新 `Parameter` 数据。
|
- **ValueError** - `layout` 长度小于6。
|
||||||
|
- **TypeError** - `layout` 不是元组。
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **RuntimeError** - 参数使用 `Initializer` 模块进行初始化,初始化后并行模式发生更改。
|
|
||||||
- **ValueError** - `layout` 长度小于6。
|
|
||||||
- **TypeError** - `layout` 不是元组。
|
|
||||||
|
|
||||||
.. py:method:: inited_param
|
.. py:method:: inited_param
|
||||||
:property:
|
:property:
|
||||||
|
@ -130,24 +124,21 @@
|
||||||
|
|
||||||
设置参数数据。
|
设置参数数据。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **data** (Union[Tensor, int, float]) - 新数据。
|
||||||
|
- **slice_shape** (bool) - 如果 `slice_shape` 设为True,则不检查 `data` 和当前参数shape的一致性。默认值:False。
|
||||||
|
|
||||||
- **data** (Union[Tensor, int, float]) - 新数据。
|
返回:
|
||||||
- **slice_shape** (bool) - 如果 `slice_shape` 设为True,则不检查 `data` 和当前参数shape的一致性。默认值:False。
|
完成数据设置的新参数。
|
||||||
|
|
||||||
**返回:**
|
|
||||||
|
|
||||||
完成数据设置的新参数。
|
|
||||||
|
|
||||||
.. py:method:: set_param_fl(push_to_server=False, pull_from_server=False, requires_aggr=True)
|
.. py:method:: set_param_fl(push_to_server=False, pull_from_server=False, requires_aggr=True)
|
||||||
|
|
||||||
设置参数和服务器的互动方式。
|
设置参数和服务器的互动方式。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **push_to_server** (bool) - 表示是否将参数推送到服务器。默认值:False。
|
||||||
- **push_to_server** (bool) - 表示是否将参数推送到服务器。默认值:False。
|
- **pull_from_server** (bool) - 表示是否应从服务器中拉取参数。默认值:False。
|
||||||
- **pull_from_server** (bool) - 表示是否应从服务器中拉取参数。默认值:False。
|
- **requires_aggr** (bool) - 表示是否应在服务器中聚合参数。默认值:True。
|
||||||
- **requires_aggr** (bool) - 表示是否应在服务器中聚合参数。默认值:True。
|
|
||||||
|
|
||||||
.. py:method:: set_param_ps(init_in_server=False)
|
.. py:method:: set_param_ps(init_in_server=False)
|
||||||
|
|
||||||
|
@ -155,9 +146,8 @@
|
||||||
|
|
||||||
.. note:: 仅当运行的任务处于参数服务器模式下有效。
|
.. note:: 仅当运行的任务处于参数服务器模式下有效。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **init_in_server** (bool) - 表示参数服务器更新的可训练参数是否在服务器上初始化。默认值:False。
|
||||||
- **init_in_server** (bool) - 表示参数服务器更新的可训练参数是否在服务器上初始化。默认值:False。
|
|
||||||
|
|
||||||
.. py:method:: sliced
|
.. py:method:: sliced
|
||||||
:property:
|
:property:
|
||||||
|
|
|
@ -12,15 +12,14 @@ mindspore.ParameterTuple
|
||||||
|
|
||||||
逐个对ParameterTuple中的Parameter进行克隆,生成新的ParameterTuple。
|
逐个对ParameterTuple中的Parameter进行克隆,生成新的ParameterTuple。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **prefix** (str) - Parameter的namespace,此前缀将会被添加到Parametertuple中的Parameter的name属性中。
|
||||||
|
- **init** (Union[Tensor, str, numbers.Number]) - 对Parametertuple中Parameter的shape和类型进行克隆,并根据传入的 `init` 设置数值。默认值:'same'。
|
||||||
|
|
||||||
- **prefix** (str) - Parameter的namespace,此前缀将会被添加到Parametertuple中的Parameter的name属性中。
|
- 如果 `init` 是 `Tensor` ,则新参数的数值与该Tensor相同。
|
||||||
- **init** (Union[Tensor, str, numbers.Number]) - 对Parametertuple中Parameter的shape和类型进行克隆,并根据传入的 `init` 设置数值。默认值:'same'。
|
- 如果 `init` 是 `numbers.Number` ,则设置新参数的数值为该值。
|
||||||
如果 `init` 是 `Tensor` ,则新参数的数值与该Tensor相同;
|
- 如果 `init` 是 `str` ,则按照 `Initializer` 模块中对应的同名的初始化方法进行数值设定。
|
||||||
如果 `init` 是 `numbers.Number` ,则设置新参数的数值为该值;
|
- 如果 `init` 是'same',则新参数的数值与原Parameter相同。
|
||||||
如果 `init` 是 `str` ,则按照 `Initializer` 模块中对应的同名的初始化方法进行数值设定;
|
|
||||||
如果 `init` 是'same',则新参数的数值与原Parameter相同。
|
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
新的参数元组。
|
||||||
新的参数元组。
|
|
||||||
|
|
|
@ -5,16 +5,14 @@ mindspore.Profiler
|
||||||
|
|
||||||
MindSpore用户能够通过该类对神经网络的性能进行采集。可以通过导入 `mindspore.Profiler` 然后初始化Profiler对象以开始分析,使用 `Profiler.analyse()` 停止收集和分析。可通过Mindinsight工具可视化分析结果。目前,Profiler支持AICORE算子、AICPU算子、HostCPU算子、内存、设备通信、集群等数据的分析。
|
MindSpore用户能够通过该类对神经网络的性能进行采集。可以通过导入 `mindspore.Profiler` 然后初始化Profiler对象以开始分析,使用 `Profiler.analyse()` 停止收集和分析。可通过Mindinsight工具可视化分析结果。目前,Profiler支持AICORE算子、AICPU算子、HostCPU算子、内存、设备通信、集群等数据的分析。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **output_path** (str, 可选) - 表示输出数据的路径。默认值:"./data"。
|
||||||
- **output_path** (str, 可选) – 表示输出数据的路径。默认值:"./data"。
|
- **profile_communication** (bool, 可选) - (仅限Ascend)表示是否在多设备训练中收集通信性能数据。当值为True时,收集这些数据。在单台设备训练中,该参数的设置无效。默认值:False。
|
||||||
- **profile_communication** (bool, 可选) – (仅限Ascend)表示是否在多设备训练中收集通信性能数据。当值为True时,收集这些数据。在单台设备训练中,该参数的设置无效。默认值:False。
|
- **profile_memory** (bool, 可选) - (仅限Ascend)表示是否收集Tensor内存数据。当值为True时,收集这些数据。默认值:False。
|
||||||
- **profile_memory** (bool, 可选) – (仅限Ascend)表示是否收集Tensor内存数据。当值为True时,收集这些数据。默认值:False。
|
- **start_profile** (bool, 可选) - 该参数控制是否在Profiler初始化的时候开启数据采集。默认值:True。
|
||||||
- **start_profile** (bool, 可选) – 该参数控制是否在Profiler初始化的时候开启数据采集。默认值:True。
|
|
||||||
|
|
||||||
**异常:**
|
异常:
|
||||||
|
- **RuntimeError** - 当CANN的版本与MindSpore版本不匹配时,生成的ascend_job_id目录结构MindSpore无法解析。
|
||||||
- **RuntimeError** – 当CANN的版本与MindSpore版本不匹配时,生成的ascend_job_id目录结构MindSpore无法解析。
|
|
||||||
|
|
||||||
.. py:method:: analyse()
|
.. py:method:: analyse()
|
||||||
|
|
||||||
|
@ -24,35 +22,27 @@ mindspore.Profiler
|
||||||
|
|
||||||
获取primitive类型的算子性能数据。
|
获取primitive类型的算子性能数据。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **op_name** (str 或 list) - 表示要查询的primitive算子类型。
|
||||||
|
- **device_id** (int, 可选) - 设备卡号,表示指定解析哪张卡的算子性能数据。在网络训练或者推理时使用,该参数可选。基于离线数据解析使用该接口时,默认值:0。
|
||||||
|
|
||||||
- **op_name** (str 或 list) – 表示要查询的primitive算子类型。
|
异常:
|
||||||
- **device_id** (int, 可选) – 设备卡号,表示指定解析哪张卡的算子性能数据。在网络训练或者推理时使用,该参数可选。基于离线数据解析使用该接口时,默认值:0。
|
- **TypeError** - op_name参数类型不正确。
|
||||||
|
- **TypeError** - device_id参数类型不正确。
|
||||||
**异常:**
|
- **RunTimeError** - 在Ascend上使用该接口获取性能数据。
|
||||||
|
|
||||||
- **TypeError** – op_name参数类型不正确。
|
|
||||||
- **TypeError** – device_id参数类型不正确。
|
|
||||||
- **RunTimeError** – 在Ascend上使用该接口获取性能数据。
|
|
||||||
|
|
||||||
**支持平台:**
|
|
||||||
|
|
||||||
``GPU`` ``CPU``
|
|
||||||
|
|
||||||
.. py:method:: start()
|
.. py:method:: start()
|
||||||
|
|
||||||
开启Profiler数据采集,可以按条件开启Profiler。
|
开启Profiler数据采集,可以按条件开启Profiler。
|
||||||
|
|
||||||
**异常:**
|
异常:
|
||||||
|
- **RuntimeError** - profiler已经开启。
|
||||||
- **RuntimeError** – profiler已经开启。
|
- **RuntimeError** - 停止Minddata采集后,不支持重复开启。
|
||||||
- **RuntimeError** – 停止Minddata采集后,不支持重复开启。
|
- **RuntimeError** - 如果start_profile参数未设置或设置为True。
|
||||||
- **RuntimeError** – 如果start_profile参数未设置或设置为True。
|
|
||||||
|
|
||||||
.. py:method:: stop()
|
.. py:method:: stop()
|
||||||
|
|
||||||
停止Profiler,可以按条件停止Profiler。
|
停止Profiler,可以按条件停止Profiler。
|
||||||
|
|
||||||
**异常:**
|
异常:
|
||||||
|
- **RuntimeError** - profiler没有开启。
|
||||||
- **RuntimeError** – profiler没有开启。
|
|
||||||
|
|
|
@ -8,15 +8,12 @@ mindspore.get_algo_parameters
|
||||||
.. note::
|
.. note::
|
||||||
属性名称为必填项。此接口仅在AUTO_PARALLEL模式下工作。
|
属性名称为必填项。此接口仅在AUTO_PARALLEL模式下工作。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **attr_key** (str) - 属性的key。key包括"fully_use_devices"、"elementwise_op_strategy_follow"、"enable_algo_approxi"、"algo_approxi_epsilon"、"tensor_slice_align_enable"和"tensor_slice_align_size"。
|
||||||
|
|
||||||
- **attr_key** (str) - 属性的key。key包括"fully_use_devices"、"elementwise_op_strategy_follow"、"enable_algo_approxi"、"algo_approxi_epsilon"、"tensor_slice_align_enable”和"tensor_slice_align_size"。
|
返回:
|
||||||
|
根据key返回属性值。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - 无法识别传入的关键字。
|
||||||
根据key返回属性值。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **ValueError** - 无法识别传入的关键字。
|
|
||||||
|
|
|
@ -5,14 +5,11 @@ mindspore.get_auto_parallel_context
|
||||||
|
|
||||||
根据key获取自动并行的配置。
|
根据key获取自动并行的配置。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **attr_key** (str) - 配置的key。
|
||||||
|
|
||||||
- **attr_key** (str) - 配置的key。
|
返回:
|
||||||
|
根据key返回配置的值。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - 输入key不在自动并行的配置列表中。
|
||||||
根据key返回配置的值。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
**ValueError**:输入key不在自动并行的配置列表中。
|
|
||||||
|
|
|
@ -1,19 +1,15 @@
|
||||||
mindspore.get_context
|
mindspore.get_context
|
||||||
======================
|
======================
|
||||||
|
|
||||||
|
|
||||||
.. py:function:: mindspore.get_context(attr_key)
|
.. py:function:: mindspore.get_context(attr_key)
|
||||||
|
|
||||||
根据输入key获取context中的属性值。如果该key没有设置,则会获取它们这些的默认值。
|
根据输入key获取context中的属性值。如果该key没有设置,则会获取它们这些的默认值。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **attr_key** (str) - 属性的key。
|
||||||
|
|
||||||
- **attr_key** (str) - 属性的key。
|
返回:
|
||||||
|
Object,表示给定属性key的值。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - 输入key不是context中的属性。
|
||||||
Object,表示给定属性key的值。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
**ValueError**:输入key不是context中的属性。
|
|
||||||
|
|
|
@ -5,6 +5,5 @@ mindspore.get_level
|
||||||
|
|
||||||
获取日志记录器的级别。
|
获取日志记录器的级别。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
string,日志级别包括4(EXCEPTION)、3(ERROR)、2(WARNING)、1(INFO)和0(DEBUG)。
|
||||||
string,日志级别包括4(EXCEPTION)、3(ERROR)、2(WARNING)、1(INFO)和0(DEBUG)。
|
|
||||||
|
|
|
@ -5,6 +5,5 @@ mindspore.get_log_config
|
||||||
|
|
||||||
获取日志配置。
|
获取日志配置。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
Dict,日志配置字典。
|
||||||
Dict,日志配置字典。
|
|
||||||
|
|
|
@ -5,21 +5,18 @@ mindspore.get_ps_context
|
||||||
|
|
||||||
根据key获取参数服务器训练模式上下文中的属性值。
|
根据key获取参数服务器训练模式上下文中的属性值。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **attr_key** (str) - 属性的key。
|
||||||
|
|
||||||
- **attr_key** (str) - 属性的key。
|
- enable_ps (bool):表示是否启用参数服务器训练模式。默认值:False。
|
||||||
|
- config_file_path (string):配置文件路径,用于容灾恢复等。默认值:''。
|
||||||
|
- scheduler_manage_port (int):调度器HTTP端口,对外开放用于接收和处理用户扩容/缩容等请求。默认值:11202。
|
||||||
|
- enable_ssl (bool):设置是否打开SSL认证。默认值:False。
|
||||||
|
- client_password (str):用于解密客户端证书密钥的密码。默认值:''。
|
||||||
|
- server_password (str):用于解密服务端证书密钥的密码。默认值:''。
|
||||||
|
|
||||||
- enable_ps (bool):表示是否启用参数服务器训练模式。默认值:False。
|
返回:
|
||||||
- config_file_path (string):配置文件路径,用于容灾恢复等。默认值:''。
|
根据key返回属性值。
|
||||||
- scheduler_manage_port (int):调度器HTTP端口,对外开放用于接收和处理用户扩容/缩容等请求。默认值:11202。
|
|
||||||
- enable_ssl (bool):设置是否打开SSL认证。默认值:False。
|
|
||||||
- client_password (str):用于解密客户端证书密钥的密码。默认值:''。
|
|
||||||
- server_password (str):用于解密服务端证书密钥的密码。默认值:''。
|
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - 输入key不是参数服务器训练模式上下文中的属性。
|
||||||
根据key返回属性值。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
**ValueError** - 输入key不是参数服务器训练模式上下文中的属性。
|
|
||||||
|
|
|
@ -5,10 +5,8 @@ mindspore.get_py_obj_dtype
|
||||||
|
|
||||||
将Python数据类型转换为MindSpore数据类型。
|
将Python数据类型转换为MindSpore数据类型。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **obj** (type) - Python数据对象,或在Python环境中定义的变量。
|
||||||
|
|
||||||
- **obj** (type) – Python数据对象,或在Python环境中定义的变量。
|
返回:
|
||||||
|
MindSpore的数据类型。
|
||||||
**返回:**
|
|
||||||
|
|
||||||
MindSpore的数据类型。
|
|
|
@ -5,6 +5,5 @@ mindspore.get_seed
|
||||||
|
|
||||||
获取随机种子。
|
获取随机种子。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
int,随机种子。
|
||||||
int,随机种子。
|
|
||||||
|
|
|
@ -5,11 +5,9 @@ mindspore.issubclass\_
|
||||||
|
|
||||||
判断 `type_` 是否为 `dtype` 的子类。
|
判断 `type_` 是否为 `dtype` 的子类。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **type_** (mindspore.dtype) - MindSpore中的目标dtype。
|
||||||
|
- **dtype** (mindspore.dtype) - dtype的比较对象。
|
||||||
|
|
||||||
- **type_** (mindspore.dtype) – MindSpore中的目标dtype。
|
返回:
|
||||||
- **dtype** (mindspore.dtype) – dtype的比较对象。
|
bool,True或False。
|
||||||
|
|
||||||
**返回:**
|
|
||||||
|
|
||||||
bool,True或False。
|
|
|
@ -7,20 +7,17 @@ mindspore.load
|
||||||
|
|
||||||
返回一个可以由 `GraphCell` 执行的对象,更多细节参见类 :class:`mindspore.nn.GraphCell` 。
|
返回一个可以由 `GraphCell` 执行的对象,更多细节参见类 :class:`mindspore.nn.GraphCell` 。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **file_name** (str) - MindIR文件的全路径名。
|
||||||
|
- **kwargs** (dict) - 配置项字典。
|
||||||
|
|
||||||
- **file_name** (str) – MindIR文件的全路径名。
|
- **dec_key** (bytes) - 用于解密的字节类型密钥。有效长度为 16、24 或 32。
|
||||||
- **kwargs** (dict) – 配置项字典。
|
- **dec_mode** (Union[str, function]) - 指定解密模式,设置dec_key时生效。可选项:'AES-GCM' | 'AES-CBC' | 自定义解密函数。默认值:"AES-GCM"。
|
||||||
|
- 关于使用自定义解密加载的详情,请查看 `教程 <https://www.mindspore.cn/mindarmour/docs/zh-CN/master/model_encrypt_protection.html>`_。
|
||||||
|
|
||||||
- **dec_key** (bytes) - 用于解密的字节类型密钥。 有效长度为 16、24 或 32。
|
返回:
|
||||||
- **dec_mode** (Union[str, function]) - 指定解密模式,设置dec_key时生效。可选项:'AES-GCM' | 'AES-CBC' | 自定义解密函数。默认值:"AES-GCM"。
|
GraphCell,一个可以由 `GraphCell` 构成的可执行的编译图。
|
||||||
- 关于使用自定义解密加载的详情, 请查看 `教程 <https://www.mindspore.cn/mindarmour/docs/zh-CN/master/model_encrypt_protection.html>`_。
|
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - MindIR文件名不存在或 `file_name` 不是string类型。
|
||||||
GraphCell,一个可以由 `GraphCell` 构成的可执行的编译图。
|
- **RuntimeError** - 解析MindIR文件失败。
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **ValueError** – MindIR 文件名不存在或 `file_name` 不是string类型。
|
|
||||||
- **RuntimeError** - 解析MindIR文件失败。
|
|
||||||
|
|
|
@ -9,23 +9,20 @@ mindspore.load_checkpoint
|
||||||
- `specify_prefix` 和 `filter_prefix` 的功能相互之间没有影响。
|
- `specify_prefix` 和 `filter_prefix` 的功能相互之间没有影响。
|
||||||
- 如果发现没有参数被成功加载,将会报ValueError.
|
- 如果发现没有参数被成功加载,将会报ValueError.
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **ckpt_file_name** (str) - checkpoint的文件名称。
|
||||||
|
- **net** (Cell) - 加载checkpoint参数的网络。默认值:None。
|
||||||
|
- **strict_load** (bool) - 是否将严格加载参数到网络中。如果是False, 它将根据相同的后缀名将参数字典中的参数加载到网络中,并会在精度不匹配时,进行强制精度转换,比如将 `float32` 转换为 `float16` 。默认值:False。
|
||||||
|
- **filter_prefix** (Union[str, list[str], tuple[str]]) - 以 `filter_prefix` 开头的参数将不会被加载。默认值:None。
|
||||||
|
- **dec_key** (Union[None, bytes]) - 用于解密的字节类型密钥,如果值为None,则不需要解密。默认值:None。
|
||||||
|
- **dec_mode** (str) - 该参数仅当 `dec_key` 不为None时有效。指定解密模式,目前支持"AES-GCM"和"AES-CBC"。默认值:"AES-GCM"。
|
||||||
|
- **specify_prefix** (Union[str, list[str], tuple[str]]) - 以 `specify_prefix` 开头的参数将会被加载。默认值:None。
|
||||||
|
|
||||||
- **ckpt_file_name** (str) – checkpoint的文件名称。
|
返回:
|
||||||
- **net** (Cell) – 加载checkpoint参数的网络。默认值:None。
|
字典,key是参数名称,value是Parameter类型。当使用 :func:`mindspore.save_checkpoint` 的 `append_dict` 参数和 :class:`CheckpointConfig` 的 `append_info` 参数保存
|
||||||
- **strict_load** (bool) – 是否将严格加载参数到网络中。如果是False, 它将根据相同的后缀名将参数字典中的参数加载到网络中,并会在精度不匹配时,进行强制精度转换,比如将 `float32` 转换为 `float16` 。默认值:False。
|
checkpoint, `append_dict` 和 `append_info` 是dict类型,且它们的值value是string时,加载checkpoint得到的返回值是string类型,其它情况返回值均是Parameter类型。
|
||||||
- **filter_prefix** (Union[str, list[str], tuple[str]]) – 以 `filter_prefix` 开头的参数将不会被加载。默认值:None。
|
|
||||||
- **dec_key** (Union[None, bytes]) – 用于解密的字节类型密钥,如果值为None,则不需要解密。默认值:None。
|
|
||||||
- **dec_mode** (str) – 该参数仅当 `dec_key` 不为None时有效。指定解密模式,目前支持“AES-GCM”和“AES-CBC”。默认值:“AES-GCM”。
|
|
||||||
- **specify_prefix** (Union[str, list[str], tuple[str]]) – 以 `specify_prefix` 开头的参数将会被加载。默认值:None。
|
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - checkpoint文件格式不正确。
|
||||||
字典,key是参数名称,value是Parameter类型。当使用 :func:`mindspore.save_checkpoint` 的 `append_dict` 参数和 :class:`CheckpointConfig` 的 `append_info` 参数保存
|
- **ValueError** - 没有一个参数被成功加载。
|
||||||
checkpoint, `append_dict` 和 `append_info` 是dict类型,且它们的值value是string时,加载checkpoint得到的返回值是string类型,其它情况返回值均是Parameter类型。
|
- **TypeError** - `specify_prefix` 或者 `filter_prefix` 的数据类型不正确。
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **ValueError** – checkpoint文件格式不正确。
|
|
||||||
- **ValueError** – 没有一个参数被成功加载。
|
|
||||||
- **TypeError** `specify_prefix` 或者 `filter_prefix` 的数据类型不正确。
|
|
||||||
|
|
|
@ -3,19 +3,17 @@ mindspore.load_distributed_checkpoint
|
||||||
|
|
||||||
.. py:function:: mindspore.load_distributed_checkpoint(network, checkpoint_filenames, predict_strategy=None, train_strategy_filename=None, strict_load=False, dec_key=None, dec_mode='AES-GCM')
|
.. py:function:: mindspore.load_distributed_checkpoint(network, checkpoint_filenames, predict_strategy=None, train_strategy_filename=None, strict_load=False, dec_key=None, dec_mode='AES-GCM')
|
||||||
|
|
||||||
给分布式预测加载checkpoint文件到网络,用于分布式推理。关于分布式推理的细节,请参考: https://www.mindspore.cn/tutorials/experts/zh-CN/master/parallel/distributed_inference.html 。
|
给分布式预测加载checkpoint文件到网络,用于分布式推理。关于分布式推理的细节,请参考:https://www.mindspore.cn/tutorials/experts/zh-CN/master/parallel/distributed_inference.html。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **network** (Cell) - 分布式预测网络。
|
||||||
|
- **checkpoint_filenames** (list[str]) - checkpoint文件的名称,按rank id顺序排列。
|
||||||
|
- **predict_strategy** (dict) - 预测时参数的切分策略。
|
||||||
|
- **train_strategy_filename** (str) - 训练策略proto文件名。默认值:None。
|
||||||
|
- **strict_load** (bool) - 表示是否严格加载参数到网络。如果值为False,则当checkpoint文件中参数名称的后缀与网络中的参数相同时,加载参数到网络。当类型不一致时,对相同类型的参数进行类型转换,如从float32到float16。默认值:False。
|
||||||
|
- **dec_key** (Union[None, bytes]) - 用于解密的字节类型key。如果value为None,则不需要解密。默认值:None。
|
||||||
|
- **dec_mode** (str) - 仅当dec_key不设为None时,该参数有效。指定了解密模式,目前支持AES-GCM和AES-CBC。默认值:AES-GCM。
|
||||||
|
|
||||||
- **network** (Cell) - 分布式预测网络。
|
异常:
|
||||||
- **checkpoint_filenames** (list[str]) - checkpoint文件的名称,按rank id 顺序排列。
|
- **TypeError** - 输入类型不符合要求。
|
||||||
- **predict_strategy** (dict) - 预测时参数的切分策略。
|
- **ValueError** - 无法加载checkpoint文件到网络。
|
||||||
- **train_strategy_filename** (str) - 训练策略proto文件名。默认值:None。
|
|
||||||
- **strict_load** (bool) - 表示是否严格加载参数到网络。如果值为False,则当checkpoint文件中参数名称的后缀与网络中的参数相同时,加载参数到网络。当类型不一致时,对相同类型的参数进行类型转换,如从float32到float16。默认值:False。
|
|
||||||
- **dec_key** (Union[None, bytes]) - 用于解密的字节类型key。如果value为None,则不需要解密。默认值:None。
|
|
||||||
- **dec_mode** (str) - 仅当dec_key不设为None时,该参数有效。指定了解密模式,目前支持AES-GCM和AES-CBC。默认值:AES-GCM。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **TypeError:** 输入类型不符合要求。
|
|
||||||
- **ValueError:** 无法加载checkpoint文件到网络。
|
|
||||||
|
|
|
@ -5,16 +5,13 @@ mindspore.load_param_into_net
|
||||||
|
|
||||||
将参数加载到网络中,返回网络中没有被加载的参数列表。
|
将参数加载到网络中,返回网络中没有被加载的参数列表。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **net** (Cell) - 将要加载参数的网络。
|
||||||
|
- **parameter_dict** (dict) - 加载checkpoint文件得到的字典。
|
||||||
|
- **strict_load** (bool) - 是否将参数严格加载到网络中。如果是False, 它将以相同的后缀名将参数字典中的参数加载到网络中,并会在精度不匹配时,进行精度转换,比如将 `float32` 转换为 `float16` 。默认值:False。
|
||||||
|
|
||||||
- **net** (Cell) – 将要加载参数的网络。
|
返回:
|
||||||
- **parameter_dict** (dict) – 加载checkpoint文件得到的字典。
|
List,网络中没有被加载的参数。
|
||||||
- **strict_load** (bool) – 是否将参数严格加载到网络中。如果是False, 它将以相同的后缀名将参数字典中的参数加载到网络中,并会在精度不匹配时,进行精度转换,比如将 `float32` 转换为 `float16` 。默认值:False。
|
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **TypeError** - 如果参数不是Cell,或者 `parameter_dict` 不是Parameter类型的字典。
|
||||||
List,网络中没有被加载的参数。
|
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **TypeError** – 如果参数不是Cell,或者 `parameter_dict` 不是Parameter类型的字典。
|
|
||||||
|
|
|
@ -5,17 +5,14 @@ mindspore.merge_sliced_parameter
|
||||||
|
|
||||||
将参数切片合并为一个完整的参数,用于分布式推理。关于它的细节,请参考:`保存和加载模型(HyBrid Parallel模式) <https://www.mindspore.cn/tutorials/experts/zh-CN/master/parallel/save_load.html>`_。
|
将参数切片合并为一个完整的参数,用于分布式推理。关于它的细节,请参考:`保存和加载模型(HyBrid Parallel模式) <https://www.mindspore.cn/tutorials/experts/zh-CN/master/parallel/save_load.html>`_。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **sliced_parameters** (list[Parameter]) - 参数切片,按rank id进行排列。
|
||||||
|
- **strategy** (Optional[dict]) - 参数切片策略,key为参数名称,value为该参数的切片策略。如果 `strategy` 为None,则只需按0轴顺序合并参数切片。默认值:None。
|
||||||
|
|
||||||
- **sliced_parameters** (list[Parameter]) - 参数切片,按rank id进行排列。
|
返回:
|
||||||
- **strategy** (Optional[dict]) - 参数切片策略,key为参数名称,value为该参数的切片策略。如果 `strategy` 为None,则只需按0轴顺序合并参数切片。默认值:None。
|
合并后的参数,包含所有数据。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - 合并失败。
|
||||||
合并后的参数,包含所有数据。
|
- **TypeError** - `sliced_parameters` 不正确或 `strategy` 不是dict。
|
||||||
|
- **KeyError** - 参数名称不在策略的key中。
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **ValueError** - 合并失败。
|
|
||||||
- **TypeError** - `sliced_parameters` 不正确或 `strategy` 不是dict。
|
|
||||||
- **KeyError** - 参数名称不在策略的key中。
|
|
||||||
|
|
|
@ -7,15 +7,12 @@ mindspore.ms_class
|
||||||
|
|
||||||
MindSpore可以通过ms_class识别用户定义的类,从而获取这些类的属性和方法。
|
MindSpore可以通过ms_class识别用户定义的类,从而获取这些类的属性和方法。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **cls** (Class) - 用户自定义的类。
|
||||||
|
|
||||||
- **cls** (Class) - 用户自定义的类。
|
返回:
|
||||||
|
带有 __ms_class__ 属性的类。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **TypeError** - 如果 ms_class 用于非 class 类型或者 nn.Cell。
|
||||||
带有 __ms_class__ 属性的类。
|
- **AttributeError** - 如果调用了 ms_class 装饰的类的私有属性或魔术方法。
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **TypeError** – 如果 ms_class 用于非 class 类型或者 nn.Cell。
|
|
||||||
- **AttributeError** – 如果调用了 ms_class 装饰的类的私有属性或魔术方法。
|
|
||||||
|
|
|
@ -7,17 +7,15 @@ mindspore.ms_function
|
||||||
|
|
||||||
MindSpore可以在运行时对图进行优化。
|
MindSpore可以在运行时对图进行优化。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **fn** (Function) - 要编译成图的Python函数。默认值:None。
|
||||||
- **fn** (Function) - 要编译成图的Python函数。默认值:None。
|
- **input_signature** (Tensor) - 用于表示输入参数的Tensor。Tensor的shape和dtype将作为函数的输入shape和dtype。默认值:None。
|
||||||
- **input_signature** (Tensor) - 用于表示输入参数的Tensor。Tensor的shape和dtype将作为函数的输入shape和dtype。默认值:None。
|
- **hash_args** (Union[Object, List or Tuple of Objects]) - `fn` 里面用到的自由变量,比如外部函数或类对象,再次调用时若 `hash_args` 出现变化会触发重新编译。默认值:None。
|
||||||
- **hash_args** (Union[Object, List or Tuple of Objects]) - `fn` 里面用到的自由变量,比如外部函数或类对象,再次调用时若 `hash_args` 出现变化会触发重新编译。默认值:None。
|
- **jit_config** (JitConfig) - 编译时所使用的JitConfig配置项,详细可参考 :class:`mindspore.JitConfig`。默认值:None。
|
||||||
- **jit_config** (JitConfig) - 编译时所使用的JitConfig配置项,详细可参考 :class:`mindspore.JitConfig`。默认值:None。
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
- 如果指定了 `input_signature` ,则 `fn` 的每个输入都必须是Tensor。并且 `fn` 的输入参数将不会接受 `**kwargs` 参数。
|
- 如果指定了 `input_signature` ,则 `fn` 的每个输入都必须是Tensor。并且 `fn` 的输入参数将不会接受 `**kwargs` 参数。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
函数,如果 `fn` 不是None,则返回一个已经将输入 `fn` 编译成图的可执行函数;如果 `fn` 为None,则返回一个装饰器。当这个装饰器使用单个 `fn` 参数进行调用时,等价于 `fn` 不是None的场景。
|
||||||
函数,如果 `fn` 不是None,则返回一个已经将输入 `fn` 编译成图的可执行函数;如果 `fn` 为None,则返回一个装饰器。当这个装饰器使用单个 `fn` 参数进行调用时,等价于 `fn` 不是None的场景。
|
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,10 @@ mindspore.mutable
|
||||||
当前除了Tensor,所有顶层网络的输入,例如标量、tuple、list和dict,都被当做常量值。常量值是不能求导的,而且在编译优化阶段会被常量折叠掉。
|
当前除了Tensor,所有顶层网络的输入,例如标量、tuple、list和dict,都被当做常量值。常量值是不能求导的,而且在编译优化阶段会被常量折叠掉。
|
||||||
另外,当网络的输入是tuple[Tensor], list[Tensor]或Dict[Tensor]时,即使里面Tensor的shape和dtype没有发生变化,在多次调用同一个网络的时候,这个网络每次都会被重新编译,这是因为这些类型的输入被当做常量值处理了。
|
另外,当网络的输入是tuple[Tensor], list[Tensor]或Dict[Tensor]时,即使里面Tensor的shape和dtype没有发生变化,在多次调用同一个网络的时候,这个网络每次都会被重新编译,这是因为这些类型的输入被当做常量值处理了。
|
||||||
|
|
||||||
为解决以上的问题,我们提供了 `mutable` 接口去设置网络的常量输入为“可变的”。一个“可变的”输入意味着这个输入成为了像Tensor一样的变量。最重要的是,我们可以对其进行求导了。
|
为解决以上的问题,我们提供了 `mutable` 接口去设置网络的常量输入为"可变的"。一个"可变的"输入意味着这个输入成为了像Tensor一样的变量。最重要的是,我们可以对其进行求导了。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **input_data** (Union[Tensor, tuple[Tensor], list[Tensor], dict[Tensor]]) - 要设置为可变的输入数据。
|
||||||
- **input_data** (Union[Tensor, tuple[Tensor], list[Tensor], dict[Tensor]]) - 要设置为可变的输入数据。
|
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
- 这是一个实验特性,未来有可能被修改或删除。
|
- 这是一个实验特性,未来有可能被修改或删除。
|
||||||
|
@ -21,10 +20,8 @@ mindspore.mutable
|
||||||
- 当前暂时只支持在网络外部使用该接口。
|
- 当前暂时只支持在网络外部使用该接口。
|
||||||
- 当前该接口只在图模式下生效。
|
- 当前该接口只在图模式下生效。
|
||||||
|
|
||||||
**返回:**
|
返回:
|
||||||
|
状态设置为可变的原输入数据。
|
||||||
|
|
||||||
状态设置为可变的原输入数据。
|
异常:
|
||||||
|
- **TypeError** - 如果 `input_data` 不是Tensor、tuple[Tensor]、list[Tensor]或dict[Tensor]的其中一种类型或者不是它们的嵌套结构。
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **TypeError** – 如果 `input_data` 不是Tensor、tuple[Tensor]、list[Tensor]或dict[Tensor]的其中一种类型或者不是它们的嵌套结构。
|
|
||||||
|
|
|
@ -5,15 +5,12 @@ mindspore.parse_print
|
||||||
|
|
||||||
解析由 mindspore.ops.Print 生成的数据文件。
|
解析由 mindspore.ops.Print 生成的数据文件。
|
||||||
|
|
||||||
**参数:**
|
参数:
|
||||||
|
- **print_file_name** (str) - 需要解析的文件名。
|
||||||
|
|
||||||
**print_file_name** (str) – 需要解析的文件名。
|
返回:
|
||||||
|
List,由Tensor组成的list。
|
||||||
|
|
||||||
**返回:**
|
异常:
|
||||||
|
- **ValueError** - 指定的文件不存在或为空。
|
||||||
List,由Tensor组成的list。
|
- **RuntimeError** - 解析文件失败。
|
||||||
|
|
||||||
**异常:**
|
|
||||||
|
|
||||||
- **ValueError** – 指定的文件不存在或为空。
|
|
||||||
- **RuntimeError** - 解析文件失败。
|
|
||||||
|
|
Loading…
Reference in New Issue