modify the format of API files
This commit is contained in:
parent
005212c4cb
commit
420858e6aa
|
@ -10,35 +10,31 @@ mindspore.ReduceLROnPlateau
|
|||
.. note::
|
||||
暂不支持分组学习率场景。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **monitor** (str) - 监控指标。如果是边训练边推理场景,合法的monitor配置值可以为"loss", "eval_loss"以及实例化 `Model` 时传入的metric名称;如果在训练时不做推理,合法的monitor配置值为"loss"。当monitor为"loss"时,如果训练网络有多个输出,默认取第一个值为训练损失值。默认值:"eval_loss"。
|
||||
- **factor** (float) - 学习率变化系数,范围在0-1之间。默认值:0.1。
|
||||
- **patience** (int) - `moniter` 相对历史最优值变好超过 `min_delta` 视为当前epoch的模型效果有所改善,`patience` 为等待的无改善epoch的数量,当内部等待的epoch数 `self.wait` 大于等于 `patience` 时,训练停止。默认值:10。
|
||||
- **verbose** (bool) - 是否打印相关信息。默认值:False。
|
||||
- **mode** (str) - `{'auto', 'min', 'max'}` 中的一种,'min'模式下将在指标不再减小时改变学习率,'max'模式下将在指标不再增大时改变学习率,'auto'模式将根据当前 `monitor` 指标的特点自动设置。默认值:"auto"。
|
||||
- **min_delta** (float) - `monitor` 指标变化的最小阈值,超过此阈值才视为 `monitor` 的变化。默认值:1e-4。
|
||||
- **cooldown** (int) - 减小学习率后,在接下来的 `cooldown` 个epoch中不执行操作。默认值:0。
|
||||
- **min_lr** (float) - 学习率最小设定值。默认值:0。
|
||||
|
||||
- **monitor** (str) - 监控指标。如果是边训练边推理场景,合法的monitor配置值可以为"loss", "eval_loss"以及实例化 `Model` 时传入的metric名称;如果在训练时不做推理,合法的monitor配置值为"loss"。当monitor为"loss"时,如果训练网络有多个输出,默认取第一个值为训练损失值。默认值:"eval_loss"。
|
||||
- **factor** (float) - 学习率变化系数,范围在0-1之间。默认值:0.1。
|
||||
- **patience** (int) - `moniter` 相对历史最优值变好超过 `min_delta` 视为当前epoch的模型效果有所改善,`patience` 为等待的无改善epoch的数量,当内部等待的epoch数 `self.wait` 大于等于 `patience` 时,训练停止。默认值:10。
|
||||
- **verbose** (bool) - 是否打印相关信息。默认值:False。
|
||||
- **mode** (str) - `{'auto', 'min', 'max'}` 中的一种,'min'模式下将在指标不再减小时改变学习率,'max'模式下将在指标不再增大时改变学习率,'auto'模式将根据当前 `monitor` 指标的特点自动设置。默认值:"auto"。
|
||||
- **min_delta** (float) - `monitor` 指标变化的最小阈值,超过此阈值才视为 `monitor` 的变化。默认值:1e-4。
|
||||
- **cooldown** (int) - 减小学习率后,在接下来的 `cooldown` 个epoch中不执行操作。默认值:0。
|
||||
- **min_lr** (float) - 学习率最小设定值。默认值:0。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - 当 `mode` 不在 `{'auto', 'min', 'max'}` 中。
|
||||
- **ValueError** - 分组学习率或动态学习率场景下,当获取到的学习率不是parameter类型。
|
||||
- **ValueError** - 当传入的 `monitor` 返回值不是标量。
|
||||
异常:
|
||||
- **ValueError** - 当 `mode` 不在 `{'auto', 'min', 'max'}` 中。
|
||||
- **ValueError** - 分组学习率或动态学习率场景下,当获取到的学习率不是parameter类型。
|
||||
- **ValueError** - 当传入的 `monitor` 返回值不是标量。
|
||||
|
||||
.. py:method:: on_train_begin(run_context)
|
||||
|
||||
训练开始时初始化相关的变量。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
参数:
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
|
||||
.. py:method:: on_train_epoch_end(run_context)
|
||||
|
||||
训练过程中,若监控指标在等待 `patience` 个epoch后仍没有改善,则改变学习率。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
参数:
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
|
|
|
@ -14,16 +14,14 @@ mindspore.RowTensor
|
|||
.. note::
|
||||
这是一个实验特性,在未来可能会发生API的变化。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **indices** (Tensor) - 形状为[D0]的一维整数张量。默认值:None。
|
||||
- **values** (Tensor) - 形状为[D0, D1, ..., Dn]中任意类型的张量。默认值:None。
|
||||
- **dense_shape** (tuple(int)) - 包含相应稠密张量形状的整数元组。默认值:None。
|
||||
- **row_tensor** (RowTensor) - RowTensor对象,用来初始化新的RowTensor。默认值:None。
|
||||
|
||||
- **indices** (Tensor) - 形状为[D0]的一维整数张量。默认值:None。
|
||||
- **values** (Tensor) - 形状为[D0, D1, ..., Dn]中任意类型的张量。默认值:None。
|
||||
- **dense_shape** (tuple(int)) - 包含相应稠密张量形状的整数元组。默认值:None。
|
||||
- **row_tensor** (RowTensor) - RowTensor对象,用来初始化新的RowTensor。默认值:None。
|
||||
|
||||
**返回:**
|
||||
|
||||
RowTensor,由 `indices` 、 `values` 和 `dense_shape` 组成。
|
||||
返回:
|
||||
RowTensor,由 `indices` 、 `values` 和 `dense_shape` 组成。
|
||||
|
||||
.. py:method:: indices
|
||||
:property:
|
||||
|
|
|
@ -59,25 +59,22 @@ mindspore.RunContext
|
|||
| net_outputs | net_outputs | 训练或推理的网络输出 |
|
||||
+--------------------------+------------------------+---------------------------------------+
|
||||
|
||||
**参数:**
|
||||
|
||||
- **original_args** (dict) - 模型的相关信息。
|
||||
参数:
|
||||
- **original_args** (dict) - 模型的相关信息。
|
||||
|
||||
.. py:method:: get_stop_requested()
|
||||
|
||||
获取是否停止训练的标志。
|
||||
|
||||
**返回:**
|
||||
|
||||
bool,如果为True,则 `Model.train()` 停止迭代。
|
||||
返回:
|
||||
bool,如果为True,则 `Model.train()` 停止迭代。
|
||||
|
||||
.. py:method:: original_args()
|
||||
|
||||
获取模型相关信息的对象。
|
||||
|
||||
**返回:**
|
||||
|
||||
dict,含有模型的相关信息的对象。
|
||||
返回:
|
||||
dict,含有模型的相关信息的对象。
|
||||
|
||||
.. py:method:: request_stop()
|
||||
|
||||
|
|
|
@ -5,19 +5,17 @@ mindspore.SparseTensor
|
|||
|
||||
用来表示某一张量在给定索引上非零元素的集合。
|
||||
|
||||
`SparseTensor` 只能在 `Cell` 的构造方法中使用。
|
||||
`SparseTensor` 只能在 `Cell` 的构造方法中使用。
|
||||
|
||||
.. note::
|
||||
目前不支持PyNative模式。
|
||||
|
||||
对于稠密张量,其 `SparseTensor(indices, values, shape)` 具有 `dense[indices[i]] = values[i]` 。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **indices** (Tensor) - 形状为 `[N, ndims]` 的二维整数张量,其中N和ndims分别表示稀疏张量中 `values` 的数量和SparseTensor维度的数量。
|
||||
- **values** (Tensor) - 形状为[N]的一维张量,其内部可以为任何数据类型,用来给 `indices` 中的每个元素提供数值。
|
||||
- **shape** (tuple(int)) - 形状为ndims的整数元组,用来指定稀疏矩阵的稠密形状。
|
||||
|
||||
- **indices** (Tensor) - 形状为 `[N, ndims]` 的二维整数张量,其中N和ndims分别表示稀疏张量中 `values` 的数量和SparseTensor维度的数量。
|
||||
- **values** (Tensor) - 形状为[N]的一维张量,其内部可以为任何数据类型,用来给 `indices` 中的每个元素提供数值。
|
||||
- **shape** (tuple(int)) - 形状为ndims的整数元组,用来指定稀疏矩阵的稠密形状。
|
||||
|
||||
**返回:**
|
||||
|
||||
SparseTensor,由 `indices` 、 `values` 和 `shape` 组成。
|
||||
返回:
|
||||
SparseTensor,由 `indices` 、 `values` 和 `shape` 组成。
|
||||
|
|
|
@ -16,37 +16,35 @@ mindspore.SummaryCollector
|
|||
- SummaryCollector仅支持Linux系统。
|
||||
- 编译MindSpore时,设置 `-s on` 关闭维测功能后,SummaryCollector不可用。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **summary_dir** (str) - 收集的数据将存储到此目录。如果目录不存在,将自动创建。
|
||||
- **collect_freq** (int) - 设置数据收集的频率,频率应大于零,单位为 `step` 。如果设置了频率,将在(current steps % freq)=0时收集数据,并且将总是收集第一个step。需要注意的是,如果使用数据下沉模式,单位将变成 `epoch` 。不建议过于频繁地收集数据,因为这可能会影响性能。默认值:10。
|
||||
- **collect_specified_data** (Union[None, dict]) - 对收集的数据进行自定义操作。您可以使用字典自定义需要收集的数据类型。例如,您可以设置{'collect_metric':False}不去收集metrics。支持控制的数据如下。默认值:None,收集所有数据。
|
||||
|
||||
- **summary_dir** (str) - 收集的数据将存储到此目录。如果目录不存在,将自动创建。
|
||||
- **collect_freq** (int) - 设置数据收集的频率,频率应大于零,单位为 `step` 。如果设置了频率,将在(current steps % freq)=0时收集数据,并且将总是收集第一个step。需要注意的是,如果使用数据下沉模式,单位将变成 `epoch` 。不建议过于频繁地收集数据,因为这可能会影响性能。默认值:10。
|
||||
- **collect_specified_data** (Union[None, dict]) - 对收集的数据进行自定义操作。您可以使用字典自定义需要收集的数据类型。例如,您可以设置{'collect_metric':False}不去收集metrics。支持控制的数据如下。默认值:None,收集所有数据。
|
||||
- **collect_metric** (bool) - 表示是否收集训练metrics,目前只收集loss。把第一个输出视为loss,并且算出其平均数。默认值:True。
|
||||
- **collect_graph** (bool) - 表示是否收集计算图。目前只收集训练计算图。默认值:True。
|
||||
- **collect_train_lineage** (bool) - 表示是否收集训练阶段的lineage数据,该字段将显示在MindInsight的 `lineage页面 <https://www.mindspore.cn/mindinsight/docs/zh-CN/master/lineage_and_scalars_comparison.html>`_ 上。默认值:True。
|
||||
- **collect_eval_lineage** (bool) - 表示是否收集评估阶段的lineage数据,该字段将显示在MindInsight的lineage页面上。默认值:True。
|
||||
- **collect_input_data** (bool) - 表示是否为每次训练收集数据集。目前仅支持图像数据。如果数据集中有多列数据,则第一列应为图像数据。默认值:True。
|
||||
- **collect_dataset_graph** (bool) - 表示是否收集训练阶段的数据集图。默认值:True。
|
||||
- **histogram_regular** (Union[str, None]) - 收集参数分布页面的权重和偏置,并在MindInsight中展示。此字段允许正则表达式控制要收集的参数。不建议一次收集太多参数,因为这会影响性能。注:如果收集的参数太多并且内存不足,训练将会失败。默认值:None,表示只收集网络的前五个超参。
|
||||
- **collect_landscape** (Union[dict, None]) - 表示是否收集创建loss地形图所需要的参数。如果设置None,则不收集任何参数。默认收集所有参数并且将会保存在 `{summary_dir}/ckpt_dir/train_metadata.json` 文件中。
|
||||
|
||||
- **collect_metric** (bool) - 表示是否收集训练metrics,目前只收集loss。把第一个输出视为loss,并且算出其平均数。默认值:True。
|
||||
- **collect_graph** (bool) - 表示是否收集计算图。目前只收集训练计算图。默认值:True。
|
||||
- **collect_train_lineage** (bool) - 表示是否收集训练阶段的lineage数据,该字段将显示在MindInsight的 `lineage页面 <https://www.mindspore.cn/mindinsight/docs/zh-CN/master/lineage_and_scalars_comparison.html>`_ 上。默认值:True。
|
||||
- **collect_eval_lineage** (bool) - 表示是否收集评估阶段的lineage数据,该字段将显示在MindInsight的lineage页面上。默认值:True。
|
||||
- **collect_input_data** (bool) - 表示是否为每次训练收集数据集。目前仅支持图像数据。如果数据集中有多列数据,则第一列应为图像数据。默认值:True。
|
||||
- **collect_dataset_graph** (bool) - 表示是否收集训练阶段的数据集图。默认值:True。
|
||||
- **histogram_regular** (Union[str, None]) - 收集参数分布页面的权重和偏置,并在MindInsight中展示。此字段允许正则表达式控制要收集的参数。不建议一次收集太多参数,因为这会影响性能。注:如果收集的参数太多并且内存不足,训练将会失败。默认值:None,表示只收集网络的前五个超参。
|
||||
- **collect_landscape** (Union[dict, None]) - 表示是否收集创建loss地形图所需要的参数。如果设置None,则不收集任何参数。默认收集所有参数并且将会保存在 `{summary_dir}/ckpt_dir/train_metadata.json` 文件中。
|
||||
- **landscape_size** (int) - 指定生成loss地形图的图像分辨率。例如:如果设置为128,则loss地形图的分辨率是128*128。注意:计算loss地形图的时间随着分辨率的增大而增加。默认值:40。可选值:3-256。
|
||||
- **unit** (str) - 指定训练过程中保存checkpoint时,下方参数 `intervals` 以何种形式收集模型权重。例如:将 `intervals` 设置为[[1, 2, 3, 4]],如果 `unit` 设置为step,则收集模型权重的频率单位为step,将保存1-4个step的模型权重,而 `unit` 设置为epoch,则将保存1-4个epoch的模型权重。默认值:step。可选值:epoch/step。
|
||||
- **create_landscape** (dict) - 选择创建哪种类型的loss地形图,分为训练过程loss地形图(train)和训练结果loss地形图(result)。默认值:{"train": True, "result": True}。可选值:True/False。
|
||||
- **num_samples** (int) - 创建loss地形图所使用的数据集的大小。例如:在图像数据集中,您可以设置 `num_samples` 是128,这意味着将有128张图片被用来创建loss地形图。注意:`num_samples` 越大,计算loss地形图时间越长。默认值:128。
|
||||
- **intervals** (List[List[int]]) - 指定loss地形图的区间。例如:如果用户想要创建两张训练过程的loss地形图,分别为1-5epoch和6-10epoch,则用户可以设置[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]。注意:每个区间至少包含3个epoch。
|
||||
|
||||
- **landscape_size** (int) - 指定生成loss地形图的图像分辨率。例如:如果设置为128,则loss地形图的分辨率是128*128。注意:计算loss地形图的时间随着分辨率的增大而增加。默认值:40。可选值:3-256。
|
||||
- **unit** (str) - 指定训练过程中保存checkpoint时,下方参数 `intervals` 以何种形式收集模型权重。例如:将 `intervals` 设置为[[1, 2, 3, 4]],如果 `unit` 设置为step,则收集模型权重的频率单位为step,将保存1-4个step的模型权重,而 `unit` 设置为epoch,则将保存1-4个epoch的模型权重。默认值:step。可选值:epoch/step。
|
||||
- **create_landscape** (dict) - 选择创建哪种类型的loss地形图,分为训练过程loss地形图(train)和训练结果loss地形图(result)。默认值:{"train": True, "result": True}。可选值:True/False。
|
||||
- **num_samples** (int) - 创建loss地形图所使用的数据集的大小。例如:在图像数据集中,您可以设置 `num_samples` 是128,这意味着将有128张图片被用来创建loss地形图。注意:`num_samples` 越大,计算loss地形图时间越长。默认值:128。
|
||||
- **intervals** (List[List[int]]) - 指定loss地形图的区间。例如:如果用户想要创建两张训练过程的loss地形图,分别为1-5epoch和6-10epoch,则用户可以设置[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]。注意:每个区间至少包含3个epoch。
|
||||
- **keep_default_action** (bool) - 此字段影响 `collect_specified_data` 字段的收集行为。True:表示设置指定数据后,其他数据按默认设置收集。False:表示设置指定数据后,只收集指定数据,不收集其他数据。默认值:True。
|
||||
- **custom_lineage_data** (Union[dict, None]) - 允许您自定义数据并将数据显示在MindInsight的lineage页面上。在自定义数据中,key支持str类型,value支持str、int和float类型。默认值:None,表示不存在自定义数据。
|
||||
- **collect_tensor_freq** (Optional[int]) - 语义与 `collect_freq` 的相同,但仅控制TensorSummary。由于TensorSummary数据太大,无法与其他summary数据进行比较,因此此参数用于降低收集量。默认情况下,收集TensorSummary数据的最大step数量为20,但不会超过收集其他summary数据的step数量。例如,给定 `collect_freq=10` ,当总step数量为600时,TensorSummary将收集20个step,而收集其他summary数据时会收集61个step。但当总step数量为20时,TensorSummary和其他summary将收集3个step。另外请注意,在并行模式下,会平均分配总的step数量,这会影响TensorSummary收集的step的数量。默认值:None,表示要遵循上述规则。
|
||||
- **max_file_size** (Optional[int]) - 可写入磁盘的每个文件的最大大小(以字节为单位)。例如,如果不大于4GB,则设置 `max_file_size=4*1024**3` 。默认值:None,表示无限制。
|
||||
- **export_options** (Union[None, dict]) - 表示对导出的数据执行自定义操作。注:导出的文件的大小不受 `max_file_size` 的限制。您可以使用字典自定义导出的数据。例如,您可以设置{'tensor_format':'npy'}将tensor导出为 `npy` 文件。支持控制的数据如下所示。默认值:None,表示不导出数据。
|
||||
|
||||
- **keep_default_action** (bool) - 此字段影响 `collect_specified_data` 字段的收集行为。True:表示设置指定数据后,其他数据按默认设置收集。False:表示设置指定数据后,只收集指定数据,不收集其他数据。默认值:True。
|
||||
- **custom_lineage_data** (Union[dict, None]) - 允许您自定义数据并将数据显示在MindInsight的lineage页面上。在自定义数据中,key支持str类型,value支持str、int和float类型。默认值:None,表示不存在自定义数据。
|
||||
- **collect_tensor_freq** (Optional[int]) - 语义与 `collect_freq` 的相同,但仅控制TensorSummary。由于TensorSummary数据太大,无法与其他summary数据进行比较,因此此参数用于降低收集量。默认情况下,收集TensorSummary数据的最大step数量为20,但不会超过收集其他summary数据的step数量。例如,给定 `collect_freq=10` ,当总step数量为600时,TensorSummary将收集20个step,而收集其他summary数据时会收集61个step。但当总step数量为20时,TensorSummary和其他summary将收集3个step。另外请注意,在并行模式下,会平均分配总的step数量,这会影响TensorSummary收集的step的数量。默认值:None,表示要遵循上述规则。
|
||||
- **max_file_size** (Optional[int]) - 可写入磁盘的每个文件的最大大小(以字节为单位)。例如,如果不大于4GB,则设置 `max_file_size=4*1024**3` 。默认值:None,表示无限制。
|
||||
- **export_options** (Union[None, dict]) - 表示对导出的数据执行自定义操作。注:导出的文件的大小不受 `max_file_size` 的限制。您可以使用字典自定义导出的数据。例如,您可以设置{'tensor_format':'npy'}将tensor导出为 `npy` 文件。支持控制的数据如下所示。默认值:None,表示不导出数据。
|
||||
- **tensor_format** (Union[str, None]) - 自定义导出的tensor的格式。支持["npy", None]。默认值:None,表示不导出tensor。
|
||||
|
||||
- **tensor_format** (Union[str, None]) - 自定义导出的tensor的格式。支持["npy", None]。默认值:None,表示不导出tensor。
|
||||
- **npy** - 将tensor导出为NPY文件。
|
||||
|
||||
- **npy** - 将tensor导出为NPY文件。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError:** 编译MindSpore时,设置 `-s on` 关闭了维测功能。
|
||||
异常:
|
||||
- **ValueError** - 译MindSpore时,设置 `-s on` 关闭了维测功能。
|
||||
|
|
|
@ -9,9 +9,8 @@ mindspore.SummaryLandscape
|
|||
- 使用SummaryLandscape时,需要将代码放置到 `if __name__ == "__main__"` 中运行。
|
||||
- SummaryLandscape仅支持Linux系统。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **summary_dir** (str) - 该路径将被用来保存创建地形图所使用的数据。
|
||||
参数:
|
||||
- **summary_dir** (str) - 该路径将被用来保存创建地形图所使用的数据。
|
||||
|
||||
|
||||
.. py:method:: clean_ckpt()
|
||||
|
@ -22,21 +21,20 @@ mindspore.SummaryLandscape
|
|||
|
||||
使用多进程来生成地形图。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **callback_fn** (python function) - Python函数对象,用户需要写一个没有输入的函数,返回值要求如下。
|
||||
|
||||
- **callback_fn** (python function) - Python函数对象,用户需要写一个没有输入的函数,返回值要求如下。
|
||||
- mindspore.Model:用户的模型。
|
||||
- mindspore.nn.Cell:用户的网络。
|
||||
- mindspore.dataset:创建loss所需要的用户数据集。
|
||||
- mindspore.nn.Metrics:用户的评估指标。
|
||||
|
||||
- mindspore.Model:用户的模型。
|
||||
- mindspore.nn.Cell:用户的网络。
|
||||
- mindspore.dataset:创建loss所需要的用户数据集。
|
||||
- mindspore.nn.Metrics:用户的评估指标。
|
||||
- **collect_landscape** (Union[dict, None]) - 创建loss地形图所用的参数含义与SummaryCollector同名字段一致。此处设置的目的是允许用户可以自由修改创建loss地形图参数。默认值:None。
|
||||
|
||||
- **collect_landscape** (Union[dict, None]) - 创建loss地形图所用的参数含义与SummaryCollector同名字段一致。此处设置的目的是允许用户可以自由修改创建loss地形图参数。默认值:None。
|
||||
- **landscape_size** (int) - 指定生成loss地形图的图像分辨率。例如:如果设置为128,则loss地形图的分辨率是128*128。计算loss地形图的时间随着分辨率的增大而增加。默认值:40。可选值:3-256。
|
||||
- **create_landscape** (dict) - 选择创建哪种类型的loss地形图,分为训练过程loss地形图(train)和训练结果loss地形图(result)。默认值:{"train": True, "result": True}。可选值:True/False。
|
||||
- **num_samples** (int) - 创建loss地形图所使用的数据集的大小。例如:在图像数据集中,您可以设置 `num_samples` 是128,这意味着将有128张图片被用来创建loss地形图。注意:`num_samples` 越大,计算loss地形图时间越长。默认值:128。
|
||||
- **intervals** (List[List[int]]) - 指定创建loss地形图所需要的checkpoint区间。例如:如果用户想要创建两张训练过程的loss地形图,分别为1-5epoch和6-10epoch,则用户可以设置[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]。注意:每个区间至少包含3个epoch。
|
||||
|
||||
- **landscape_size** (int) - 指定生成loss地形图的图像分辨率。例如:如果设置为128,则loss地形图的分辨率是128*128。计算loss地形图的时间随着分辨率的增大而增加。默认值:40。可选值:3-256。
|
||||
- **create_landscape** (dict) - 选择创建哪种类型的loss地形图,分为训练过程loss地形图(train)和训练结果loss地形图(result)。默认值:{"train": True, "result": True}。可选值:True/False。
|
||||
- **num_samples** (int) - 创建loss地形图所使用的数据集的大小。例如:在图像数据集中,您可以设置 `num_samples` 是128,这意味着将有128张图片被用来创建loss地形图。注意:`num_samples` 越大,计算loss地形图时间越长。默认值:128。
|
||||
- **intervals** (List[List[int]]) - 指定创建loss地形图所需要的checkpoint区间。例如:如果用户想要创建两张训练过程的loss地形图,分别为1-5epoch和6-10epoch,则用户可以设置[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]。注意:每个区间至少包含3个epoch。
|
||||
|
||||
- **device_ids** (List(int)) - 指定创建loss地形图所使用的目标设备的ID。例如:[0, 1]表示使用设备0和设备1来创建loss地形图。默认值:None。
|
||||
- **output** (str) - 指定保存loss地形图的路径。默认值:None。默认保存路径与summary文件相同。
|
||||
- **device_ids** (List(int)) - 指定创建loss地形图所使用的目标设备的ID。例如:[0, 1]表示使用设备0和设备1来创建loss地形图。默认值:None。
|
||||
- **output** (str) - 指定保存loss地形图的路径。默认值:None。默认保存路径与summary文件相同。
|
||||
|
|
|
@ -16,59 +16,55 @@ mindspore.SummaryRecord
|
|||
- SummaryRecord仅支持Linux系统。
|
||||
- 编译MindSpore时,设置 `-s on` 关闭维测功能后,SummaryRecord不可用。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **log_dir** (str) - `log_dir` 是用来保存summary文件的目录。
|
||||
- **file_prefix** (str) - 文件的前缀。默认值:`events` 。
|
||||
- **file_suffix** (str) - 文件的后缀。默认值:`_MS` 。
|
||||
- **network** (Cell) - 表示用于保存计算图的网络。默认值:None。
|
||||
- **max_file_size** (int, 可选) - 可写入磁盘的每个文件的最大大小(以字节为单位)。例如,预期写入文件最大不超过4GB,则设置 `max_file_size=4*1024**3` 。默认值:None,表示无限制。
|
||||
- **raise_exception** (bool, 可选) - 设置在记录数据中发生RuntimeError或OSError异常时是否抛出异常。默认值:False,表示打印错误日志,不抛出异常。
|
||||
- **export_options** (Union[None, dict]) - 可以将保存在summary中的数据导出,并使用字典自定义所需的数据和文件格式。注:导出的文件大小不受 `max_file_size` 的限制。例如,您可以设置{'tensor_format':'npy'}将Tensor导出为 `npy` 文件。支持导出的数据类型如下所示。默认值:None,表示不导出数据。
|
||||
|
||||
- **log_dir** (str) - `log_dir` 是用来保存summary文件的目录。
|
||||
- **file_prefix** (str) - 文件的前缀。默认值:`events` 。
|
||||
- **file_suffix** (str) - 文件的后缀。默认值:`_MS` 。
|
||||
- **network** (Cell) - 表示用于保存计算图的网络。默认值:None。
|
||||
- **max_file_size** (int, 可选) - 可写入磁盘的每个文件的最大大小(以字节为单位)。例如,预期写入文件最大不超过4GB,则设置 `max_file_size=4*1024**3` 。默认值:None,表示无限制。
|
||||
- **raise_exception** (bool, 可选) - 设置在记录数据中发生RuntimeError或OSError异常时是否抛出异常。默认值:False,表示打印错误日志,不抛出异常。
|
||||
- **export_options** (Union[None, dict]) - 可以将保存在summary中的数据导出,并使用字典自定义所需的数据和文件格式。注:导出的文件大小不受 `max_file_size` 的限制。例如,您可以设置{'tensor_format':'npy'}将Tensor导出为 `npy` 文件。支持导出的数据类型如下所示。默认值:None,表示不导出数据。
|
||||
- **tensor_format** (Union[str, None]) - 自定义导出的Tensor的格式。支持["npy", None]。默认值:None,表示不导出Tensor。
|
||||
|
||||
- **tensor_format** (Union[str, None]) - 自定义导出的Tensor的格式。支持["npy", None]。默认值:None,表示不导出Tensor。
|
||||
- **npy**:将Tensor导出为NPY文件。
|
||||
|
||||
- **npy**:将Tensor导出为NPY文件。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError:** `max_file_size` 不是整型,或 `file_prefix` 和 `file_suffix` 不是字符串。
|
||||
- **ValueError:** 编译MindSpore时,设置 `-s on` 关闭了维测功能。
|
||||
异常:
|
||||
- **TypeError** - `max_file_size` 不是整型,或 `file_prefix` 和 `file_suffix` 不是字符串。
|
||||
- **ValueError** - 编译MindSpore时,设置 `-s on` 关闭了维测功能。
|
||||
|
||||
.. py:method:: add_value(plugin, name, value)
|
||||
|
||||
添加需要记录的值。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **plugin** (str) - 数据类型标签。
|
||||
|
||||
- **plugin** (str) - 数据类型标签。
|
||||
- graph:代表添加的数据为计算图。
|
||||
- scalar:代表添加的数据为标量。
|
||||
- image:代表添加的数据为图片。
|
||||
- tensor:代表添加的数据为张量。
|
||||
- histogram:代表添加的数据为直方图。
|
||||
- train_lineage:代表添加的数据为训练阶段的lineage数据。
|
||||
- eval_lineage:代表添加的数据为评估阶段的lineage数据。
|
||||
- dataset_graph:代表添加的数据为数据图。
|
||||
- custom_lineage_data:代表添加的数据为自定义lineage数据。
|
||||
- LANDSCAPE:代表添加的数据为地形图。
|
||||
|
||||
- graph:代表添加的数据为计算图。
|
||||
- scalar:代表添加的数据为标量。
|
||||
- image:代表添加的数据为图片。
|
||||
- tensor:代表添加的数据为张量。
|
||||
- histogram:代表添加的数据为直方图。
|
||||
- train_lineage:代表添加的数据为训练阶段的lineage数据。
|
||||
- eval_lineage:代表添加的数据为评估阶段的lineage数据。
|
||||
- dataset_graph:代表添加的数据为数据图。
|
||||
- custom_lineage_data:代表添加的数据为自定义lineage数据。
|
||||
- LANDSCAPE: 代表添加的数据为地形图。
|
||||
- **name** (str) - 数据名称。
|
||||
- **value** (Union[Tensor, GraphProto, TrainLineage, EvaluationLineage, DatasetGraph, UserDefinedInfo,LossLandscape]) - 待存储的值。
|
||||
|
||||
- **name** (str) - 数据名称。
|
||||
- **value** (Union[Tensor, GraphProto, TrainLineage, EvaluationLineage, DatasetGraph, UserDefinedInfo,LossLandscape]) - 待存储的值。
|
||||
- 当plugin为"graph"时,参数值的数据类型应为"GraphProto"对象。具体详情,请参见 `mindspore/ccsrc/anf_ir.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/anf_ir.proto>`_ 。
|
||||
- 当plugin为"scalar"、"image"、"tensor"或"histogram"时,参数值的数据类型应为"Tensor"对象。
|
||||
- 当plugin为"train_lineage"时,参数值的数据类型应为"TrainLineage"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"eval_lineage"时,参数值的数据类型应为"EvaluationLineage"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"dataset_graph"时,参数值的数据类型应为"DatasetGraph"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"custom_lineage_data"时,参数值的数据类型应为"UserDefinedInfo"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"LANDSCAPE"时,参数值的数据类型应为"LossLandscape"对象。具体详情,请参见 `mindspore/ccsrc/summary.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/summary.proto>`_ 。
|
||||
|
||||
- 当plugin为"graph"时,参数值的数据类型应为"GraphProto"对象。具体详情,请参见 `mindspore/ccsrc/anf_ir.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/anf_ir.proto>`_ 。
|
||||
- 当plugin为"scalar"、"image"、"tensor"或"histogram"时,参数值的数据类型应为"Tensor"对象。
|
||||
- 当plugin为"train_lineage"时,参数值的数据类型应为"TrainLineage"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"eval_lineage"时,参数值的数据类型应为"EvaluationLineage"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"dataset_graph"时,参数值的数据类型应为"DatasetGraph"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"custom_lineage_data"时,参数值的数据类型应为"UserDefinedInfo"对象。具体详情,请参见 `mindspore/ccsrc/lineage.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/lineage.proto>`_ 。
|
||||
- 当plugin为"LANDSCAPE"时,参数值的数据类型应为"LossLandscape"对象。具体详情,请参见 `mindspore/ccsrc/summary.proto <https://gitee.com/mindspore/mindspore/blob/master/mindspore/ccsrc/utils/summary.proto>`_ 。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError:** `plugin` 的值不在可选值内。
|
||||
- **TypeError:** `name` 不是非空字符串,或当 `plugin` 为"scalar"、"image"、"tensor"或"histogram"时,`value` 的数据类型不是"Tensor"对象。
|
||||
异常:
|
||||
- **ValueError** - `plugin` 的值不在可选值内。
|
||||
- **TypeError** - `name` 不是非空字符串,或当 `plugin` 为"scalar"、"image"、"tensor"或"histogram"时,`value` 的数据类型不是"Tensor"对象。
|
||||
|
||||
.. py:method:: close()
|
||||
|
||||
|
@ -85,39 +81,33 @@ mindspore.SummaryRecord
|
|||
|
||||
获取日志文件的完整路径。
|
||||
|
||||
**返回:**
|
||||
|
||||
str,日志文件的完整路径。
|
||||
返回:
|
||||
str,日志文件的完整路径。
|
||||
|
||||
.. py:method:: record(step, train_network=None, plugin_filter=None)
|
||||
|
||||
记录summary。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **step** (int) - 表示当前的step。
|
||||
- **train_network** (Cell) - 表示用于保存计算图的训练网络。默认值:None,表示当原始网络的图为None时,不保存计算图。
|
||||
- **plugin_filter** (Callable[[str], bool], 可选) - 过滤器函数,用于过滤需要写入的标签项。默认值:None。
|
||||
|
||||
- **step** (int) - 表示当前的step。
|
||||
- **train_network** (Cell) - 表示用于保存计算图的训练网络。默认值:None,表示当原始网络的图为None时,不保存计算图。
|
||||
- **plugin_filter** (Callable[[str], bool], 可选) - 过滤器函数,用于过滤需要写入的标签项。默认值:None。
|
||||
返回:
|
||||
bool,表示记录是否成功。
|
||||
|
||||
**返回:**
|
||||
|
||||
bool,表示记录是否成功。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError:** `step` 不为整型,或 `train_network` 的类型不为 `mindspore.nn.Cell <https://www.mindspore.cn/docs/zh-CN/master/api_python/nn/mindspore.nn.Cell.html?highlight=MindSpore.nn.cell#mindspore-nn-cell>`_ 。
|
||||
异常:
|
||||
- **TypeError** - `step` 不为整型,或 `train_network` 的类型不为 `mindspore.nn.Cell <https://www.mindspore.cn/docs/zh-CN/master/api_python/nn/mindspore.nn.Cell.html?highlight=MindSpore.nn.cell#mindspore-nn-cell>`_ 。
|
||||
|
||||
.. py:method:: set_mode(mode)
|
||||
|
||||
设置模型运行阶段。不同的阶段会影响记录数据的内容。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **mode** (str) - 待设置的网络阶段,可选值为"train"或"eval"。
|
||||
|
||||
- **mode** (str) - 待设置的网络阶段,可选值为"train"或"eval"。
|
||||
- train:代表训练阶段。
|
||||
- eval:代表评估阶段,此时 `summary_record` 不会记录summary算子的数据。
|
||||
|
||||
- train:代表训练阶段。
|
||||
- eval:代表评估阶段,此时 `summary_record` 不会记录summary算子的数据。
|
||||
|
||||
**异常:**
|
||||
|
||||
**ValueError:** `mode` 的值不在可选值内。
|
||||
异常:
|
||||
- **ValueError** - `mode` 的值不在可选值内。
|
||||
|
|
|
@ -5,27 +5,22 @@ mindspore.TimeMonitor
|
|||
|
||||
监控训练或推理的时间。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **data_size** (int) - 表示每隔多少个step打印一次信息。如果程序在训练期间获取到Model的 `batch_num` ,则将把 `data_size` 设为 `batch_num` ,否则将使用 `data_size` 。默认值:None。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - `data_size` 不是正整数。
|
||||
参数:
|
||||
- **data_size** (int) - 表示每隔多少个step打印一次信息。如果程序在训练期间获取到Model的 `batch_num` ,则将把 `data_size` 设为 `batch_num` ,否则将使用 `data_size` 。默认值:None。
|
||||
|
||||
异常:
|
||||
- **ValueError** - `data_size` 不是正整数。
|
||||
|
||||
.. py:method:: epoch_begin(run_context)
|
||||
|
||||
在epoch开始时记录时间。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
参数:
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
|
||||
.. py:method:: epoch_end(run_context)
|
||||
|
||||
在epoch结束时打印epoch的耗时。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
参数:
|
||||
- **run_context** (RunContext) - 包含模型的相关信息。详情请参考 :class:`mindspore.RunContext`。
|
||||
|
|
|
@ -5,14 +5,11 @@ mindspore.pytype_to_dtype
|
|||
|
||||
将Python数据类型转换为MindSpore数据类型。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **obj** (type) - Python数据对象。
|
||||
|
||||
- **obj** (type) – Python数据对象。
|
||||
返回:
|
||||
MindSpore的数据类型。
|
||||
|
||||
**返回:**
|
||||
|
||||
MindSpore的数据类型。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **NotImplementedError** – Python类型无法转换为MindSpore类型。
|
||||
异常:
|
||||
- **NotImplementedError** - Python类型无法转换为MindSpore类型。
|
|
@ -5,15 +5,12 @@ mindspore.restore_group_info_list
|
|||
|
||||
从group_info_file_name指向的文件中提取得到通信域的信息,在该通信域内的所有设备的checkpoint文件均与存储group_info_file_name的设备相同,可以直接进行替换。通过配置环境变量GROUP_INFO_FILE以在编译阶段存储下该通信域信息,例如"export GROUP_INFO_FILE=/data/group_info.pb"。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **group_info_file_name** (str) - 保存通信域的文件的名字。
|
||||
|
||||
**group_info_file_name** (str) - 保存通信域的文件的名字。
|
||||
返回:
|
||||
List,通信域列表。
|
||||
|
||||
**返回:**
|
||||
|
||||
List,通信域列表。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - 通信域文件格式不正确。
|
||||
- **TypeError** - `group_info_file_name` 不是字符串。
|
||||
异常:
|
||||
- **ValueError** - 通信域文件格式不正确。
|
||||
- **TypeError** - `group_info_file_name` 不是字符串。
|
||||
|
|
|
@ -5,16 +5,14 @@ mindspore.save_checkpoint
|
|||
|
||||
将网络权重保存到checkpoint文件中。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **save_obj** (Union[Cell, list]) - Cell对象或者数据列表(列表的每个元素为字典类型,比如[{"name": param_name, "data": param_data},…],`param_name` 的类型必须是str,`param_data` 的类型必须是Parameter或者Tensor)。
|
||||
- **ckpt_file_name** (str) - checkpoint文件名称。如果文件已存在,将会覆盖原有文件。
|
||||
- **integrated_save** (bool) - 在并行场景下是否合并保存拆分的Tensor。默认值:True。
|
||||
- **async_save** (bool) - 是否异步执行保存checkpoint文件。默认值:False。
|
||||
- **append_dict** (dict) - 需要保存的其他信息。dict的键必须为str类型,dict的值类型必须是int、float、bool、string、Parameter或Tensor类型。默认值:None。
|
||||
- **enc_key** (Union[None, bytes]) - 用于加密的字节类型密钥。如果值为None,那么不需要加密。默认值:None。
|
||||
- **enc_mode** (str) - 该参数在 `enc_key` 不为None时有效,指定加密模式,目前仅支持"AES-GCM"和"AES-CBC"。 默认值:"AES-GCM"。
|
||||
|
||||
- **save_obj** (Union[Cell, list]) – Cell对象或者数据列表(列表的每个元素为字典类型,比如[{"name": param_name, “data”: param_data},…],`param_name` 的类型必须是str,`param_data` 的类型必须是Parameter或者Tensor)。
|
||||
- **ckpt_file_name** (str) – checkpoint文件名称。如果文件已存在,将会覆盖原有文件。
|
||||
- **integrated_save** (bool) – 在并行场景下是否合并保存拆分的Tensor。默认值:True。
|
||||
- **async_save** (bool) – 是否异步执行保存checkpoint文件。默认值:False。
|
||||
- **append_dict** (dict) – 需要保存的其他信息。dict的键必须为str类型,dict的值类型必须是int、float、bool、string、Parameter或Tensor类型。默认值:None。
|
||||
- **enc_key** (Union[None, bytes]) – 用于加密的字节类型密钥。如果值为None,那么不需要加密。默认值:None。
|
||||
- **enc_mode** (str) – 该参数在 `enc_key` 不为None时有效,指定加密模式,目前仅支持"AES-GCM"和"AES-CBC"。 默认值:“AES-GCM”。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **TypeError** – 如果参数 `save_obj` 类型不为nn.Cell或者list,且如果参数 `integrated_save` 及 `async_save` 非bool类型。如果参数 `ckpt_file_name` 不是字符串类型。
|
||||
异常:
|
||||
- **TypeError** - 如果参数 `save_obj` 类型不为nn.Cell或者list,且如果参数 `integrated_save` 及 `async_save` 非bool类型。如果参数 `ckpt_file_name` 不是字符串类型。
|
||||
|
|
|
@ -8,15 +8,13 @@ mindspore.set_algo_parameters
|
|||
.. note::
|
||||
属性名称为必填项。此接口仅在AUTO_PARALLEL模式下工作。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **fully_use_devices** (bool) - 表示是否仅搜索充分利用所有可用设备的策略。默认值:True。例如,如果有8个可用设备,当该参数设为true时,策略(4, 1)将不包括在ReLU的候选策略中,因为策略(4, 1)仅使用4个设备。
|
||||
- **elementwise_op_strategy_follow** (bool) - 表示elementwise算子是否具有与后续算子一样的策略。默认值:False。例如,Add的输出给了ReLU,其中ReLU是elementwise算子。如果该参数设置为true,则算法搜索的策略可以保证这两个算子的策略是一致的,例如,ReLU的策略(8, 1)和Add的策略((8, 1), (8, 1))。
|
||||
- **enable_algo_approxi** (bool) - 表示是否在算法中启用近似。默认值:False。由于大型DNN模型的并行搜索策略有较大的解空间,该算法在这种情况下耗时较长。为了缓解这种情况,如果该参数设置为true,则会进行近似丢弃一些候选策略,以便缩小解空间。
|
||||
- **algo_approxi_epsilon** (float) - 表示近似算法中使用的epsilon值。默认值:0.1 此值描述了近似程度。例如,一个算子的候选策略数量为S,如果 `enable_algo_approxi` 为true,则剩余策略的大小为min{S, 1/epsilon}。
|
||||
- **tensor_slice_align_enable** (bool) - 表示是否检查MatMul的tensor切片的shape。默认值:False 受某些硬件的属性限制,只有shape较大的MatMul内核才能显示出优势。如果该参数为true,则检查MatMul的切片shape以阻断不规则的shape。
|
||||
- **tensor_slice_align_size** (int) - 表示MatMul的最小tensor切片的shape,该值必须在[1,1024]范围内。默认值:16。如果 `tensor_slice_align_enable` 设为true,则MatMul tensor的最后维度的切片大小应该是该值的倍数。
|
||||
|
||||
- **fully_use_devices** (bool) - 表示是否仅搜索充分利用所有可用设备的策略。默认值:True。例如,如果有8个可用设备,当该参数设为true时,策略(4, 1)将不包括在ReLU的候选策略中,因为策略(4, 1)仅使用4个设备。
|
||||
- **elementwise_op_strategy_follow** (bool) - 表示elementwise算子是否具有与后续算子一样的策略。默认值:False。例如,Add的输出给了ReLU,其中ReLU是elementwise算子。如果该参数设置为true,则算法搜索的策略可以保证这两个算子的策略是一致的,例如,ReLU的策略(8, 1)和Add的策略((8, 1), (8, 1))。
|
||||
- **enable_algo_approxi** (bool) - 表示是否在算法中启用近似。默认值:False。由于大型DNN模型的并行搜索策略有较大的解空间,该算法在这种情况下耗时较长。为了缓解这种情况,如果该参数设置为true,则会进行近似丢弃一些候选策略,以便缩小解空间。
|
||||
- **algo_approxi_epsilon** (float) - 表示近似算法中使用的epsilon值。默认值:0.1 此值描述了近似程度。例如,一个算子的候选策略数量为S,如果 `enable_algo_approxi` 为true,则剩余策略的大小为min{S, 1/epsilon}。
|
||||
- **tensor_slice_align_enable** (bool) - 表示是否检查MatMul的tensor切片的shape。默认值:False 受某些硬件的属性限制,只有shape较大的MatMul内核才能显示出优势。如果该参数为true,则检查MatMul的切片shape以阻断不规则的shape。
|
||||
- **tensor_slice_align_size** (int) - 表示MatMul的最小tensor切片的shape,该值必须在[1,1024]范围内。默认值:16。 如果 `tensor_slice_align_enable` 设为true,则MatMul tensor的最后维度的切片大小应该是该值的倍数。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** - 无法识别传入的关键字。
|
||||
异常:
|
||||
- **ValueError** - 无法识别传入的关键字。
|
||||
|
|
|
@ -26,48 +26,46 @@ mindspore.set_auto_parallel_context
|
|||
\ grad_accumulation_step
|
||||
========================= =========================
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **device_num** (int) - 表示可用设备的编号,必须在[1,4096]范围中。默认值:1。
|
||||
- **global_rank** (int) - 表示全局RANK的ID,必须在[0,4095]范围中。默认值:0。
|
||||
- **gradients_mean** (bool) - 表示是否在梯度的 AllReduce后执行平均算子。stand_alone不支持gradients_mean。默认值:False。
|
||||
- **gradient_fp32_sync** (bool) - 在FP32中运行梯度的 AllReduce。stand_alone、data_parallel和hybrid_parallel不支持gradient_fp32_sync。默认值:True。
|
||||
- **parallel_mode** (str) - 有五种并行模式,分别是stand_alone、data_parallel、hybrid_parallel、semi_auto_parallel和auto_parallel。默认值:stand_alone。
|
||||
|
||||
- **device_num** (int) - 表示可用设备的编号,必须在[1,4096]范围中。默认值:1。
|
||||
- **global_rank** (int) - 表示全局RANK的ID,必须在[0,4095]范围中。默认值:0。
|
||||
- **gradients_mean** (bool) - 表示是否在梯度的 AllReduce后执行平均算子。stand_alone不支持gradients_mean。默认值:False。
|
||||
- **gradient_fp32_sync** (bool):在FP32中运行梯度的 AllReduce。stand_alone、data_parallel和hybrid_parallel不支持gradient_fp32_sync。默认值:True。
|
||||
- **parallel_mode** (str) - 有五种并行模式,分别是stand_alone、data_parallel、hybrid_parallel、semi_auto_parallel和auto_parallel。默认值:stand_alone。
|
||||
- stand_alone:单卡模式。
|
||||
- data_parallel:数据并行模式。
|
||||
- hybrid_parallel:手动实现数据并行和模型并行。
|
||||
- semi_auto_parallel:半自动并行模式。
|
||||
- auto_parallel:自动并行模式。
|
||||
|
||||
- stand_alone:单卡模式。
|
||||
- data_parallel:数据并行模式。
|
||||
- hybrid_parallel:手动实现数据并行和模型并行。
|
||||
- semi_auto_parallel:半自动并行模式。
|
||||
- auto_parallel:自动并行模式。
|
||||
- **search_mode** (str) - 表示有三种策略搜索模式,分别是recursive_programming,dynamic_programming和sharding_propagation。默认值:dynamic_programming。
|
||||
|
||||
- **search_mode** (str) - 表示有三种策略搜索模式,分别是recursive_programming,dynamic_programming和sharding_propagation。默认值:dynamic_programming。
|
||||
- recursive_programming:表示双递归搜索模式。
|
||||
- dynamic_programming:表示动态规划搜索模式。
|
||||
- sharding_propagation:表示从已配置算子的切分策略传播到所有算子。
|
||||
|
||||
- recursive_programming:表示双递归搜索模式。
|
||||
- dynamic_programming:表示动态规划搜索模式。
|
||||
- sharding_propagation:表示从已配置算子的切分策略传播到所有算子。
|
||||
- **auto_parallel_search_mode** (str) - search_modes参数的兼容接口。将在后续的版本中删除。
|
||||
- **parameter_broadcast** (bool) - 表示在训练前是否广播参数。在训练之前,为了使所有设备的网络初始化参数值相同,请将设备0上的参数广播到其他设备。不同并行模式下的参数广播不同。在data_parallel模式下,除layerwise_parallel属性为True的参数外,所有参数都会被广播。在hybrid_parallel、semi_auto_parallel和auto_parallel模式下,分段参数不参与广播。默认值:False。
|
||||
- **strategy_ckpt_load_file** (str) - 表示用于加载并行策略checkpoint的路径。默认值:''。
|
||||
- **strategy_ckpt_save_file** (str) - 表示用于保存并行策略checkpoint的路径。默认值:''。
|
||||
- **full_batch** (bool) - 如果在auto_parallel模式下加载整个batch数据集,则此参数应设置为True。默认值:False。目前不建议使用该接口,建议使用dataset_strategy来替换它。
|
||||
- **dataset_strategy** (Union[str, tuple]) - 表示数据集分片策略。默认值:data_parallel。dataset_strategy="data_parallel"等于full_batch=False,dataset_strategy="full_batch"等于full_batch=True。对于通过模型并列策略加载到网络的数据集,如ds_stra ((1, 8)、(1, 8)),需要使用set_auto_parallel_context(dataset_strategy=ds_stra)。
|
||||
- **enable_parallel_optimizer** (bool) - 这是一个开发中的特性,它可以为数据并行训练对权重更新计算进行分片,以节省时间和内存。目前,自动和半自动并行模式支持Ascend和GPU中的所有优化器。数据并行模式仅支持Ascend中的 `Lamb` 和 `AdamWeightDecay` 。默认值:False。
|
||||
- **enable_alltoall** (bool) - 允许在通信期间生成 `AllToAll` 通信算子的开关。 如果其值为 False,则将由 `AllGather` 、 `Split` 和 `Concat` 等通信算子的组合来代替 `AllToAll` 。 默认值:False。
|
||||
- **all_reduce_fusion_config** (list) - 通过参数索引设置 AllReduce 融合策略。仅支持ReduceOp.SUM和HCCL_WORLD_GROUP/NCCL_WORLD_GROUP。没有默认值。如果不设置,则关闭算子融合。
|
||||
- **pipeline_stages** (int) - 设置pipeline并行的阶段信息。这表明了设备如何单独分布在pipeline上。所有的设备将被划分为pipeline_stags个阶段。目前,这只能在启动semi_auto_parallel模式的情况下使用。默认值:1。
|
||||
- **grad_accumulation_step** (int) - 在自动和半自动并行模式下设置梯度的累积step。其值应为正整数。默认值:1。
|
||||
- **parallel_optimizer_config** (dict) - 用于开启优化器并行后的行为配置。仅在enable_parallel_optimizer=True的时候生效。目前,它支持关键字如下的关键字:
|
||||
|
||||
- **auto_parallel_search_mode** (str) - search_modes参数的兼容接口。将在后续的版本中删除。
|
||||
- **parameter_broadcast** (bool) - 表示在训练前是否广播参数。在训练之前,为了使所有设备的网络初始化参数值相同,请将设备0上的参数广播到其他设备。不同并行模式下的参数广播不同。在data_parallel模式下,除layerwise_parallel属性为True的参数外,所有参数都会被广播。在hybrid_parallel、semi_auto_parallel和auto_parallel模式下,分段参数不参与广播。默认值:False。
|
||||
- **strategy_ckpt_load_file** (str) - 表示用于加载并行策略checkpoint的路径。默认值:''。
|
||||
- **strategy_ckpt_save_file** (str) - 表示用于保存并行策略checkpoint的路径。默认值:''。
|
||||
- **full_batch** (bool) - 如果在auto_parallel模式下加载整个batch数据集,则此参数应设置为True。默认值:False。目前不建议使用该接口,建议使用dataset_strategy来替换它。
|
||||
- **dataset_strategy** (Union[str, tuple]) - 表示数据集分片策略。默认值:data_parallel。dataset_strategy="data_parallel"等于full_batch=False,dataset_strategy="full_batch"等于full_batch=True。对于通过模型并列策略加载到网络的数据集,如ds_stra ((1, 8)、(1, 8)),需要使用set_auto_parallel_context(dataset_strategy=ds_stra)。
|
||||
- **enable_parallel_optimizer** (bool) - 这是一个开发中的特性,它可以为数据并行训练对权重更新计算进行分片,以节省时间和内存。目前,自动和半自动并行模式支持Ascend和GPU中的所有优化器。数据并行模式仅支持Ascend中的 `Lamb` 和 `AdamWeightDecay` 。默认值:False。
|
||||
- **enable_alltoall** (bool) - 允许在通信期间生成 `AllToAll` 通信算子的开关。 如果其值为 False,则将由 `AllGather` 、 `Split` 和 `Concat` 等通信算子的组合来代替 `AllToAll` 。 默认值:False。
|
||||
- **all_reduce_fusion_config** (list) - 通过参数索引设置 AllReduce 融合策略。仅支持ReduceOp.SUM和HCCL_WORLD_GROUP/NCCL_WORLD_GROUP。没有默认值。如果不设置,则关闭算子融合。
|
||||
- **pipeline_stages** (int) - 设置pipeline并行的阶段信息。这表明了设备如何单独分布在pipeline上。所有的设备将被划分为pipeline_stags个阶段。目前,这只能在启动semi_auto_parallel模式的情况下使用。默认值:1。
|
||||
- **grad_accumulation_step** (int) - 在自动和半自动并行模式下设置梯度的累积step。其值应为正整数。默认值:1。
|
||||
- **parallel_optimizer_config** (dict) - 用于开启优化器并行后的行为配置。仅在enable_parallel_optimizer=True的时候生效。目前,它支持关键字如下的关键字:
|
||||
- gradient_accumulation_shard(bool):设置累积梯度变量是否在数据并行维度上进行切分。开启后,将进一步减小模型的显存占用,但是会在反向计算梯度时引入额外的通信算子(ReduceScatter)。此配置仅在流水线并行训练和梯度累积模式下生效。默认值:True。
|
||||
- parallel_optimizer_threshold(int):设置参数切分的阈值。占用内存小于该阈值的参数不做切分。占用内存大小 = shape[0] \* ... \* shape[n] \* size(dtype)。该阈值非负。单位:KB。默认值:64。
|
||||
|
||||
- gradient_accumulation_shard(bool):设置累积梯度变量是否在数据并行维度上进行切分。开启后,将进一步减小模型的显存占用,但是会在反向计算梯度时引入额外的通信算子(ReduceScatter)。此配置仅在流水线并行训练和梯度累积模式下生效。默认值:True。
|
||||
- parallel_optimizer_threshold(int):设置参数切分的阈值。占用内存小于该阈值的参数不做切分。占用内存大小 = shape[0] \* ... \* shape[n] \* size(dtype)。该阈值非负。单位: KB。默认值:64。
|
||||
- **comm_fusion** (dict) - 用于设置通信算子的融合配置。可以同一类型的通信算子按梯度张量的大小或者顺序分块传输。输入格式为{"通信类型": {"mode":str, "config": None int 或者 list}},每种通信算子的融合配置有两个键:"mode"和"config"。支持以下通信类型的融合类型和配置:
|
||||
|
||||
- **comm_fusion** (dict) - 用于设置通信算子的融合配置。可以同一类型的通信算子按梯度张量的大小或者顺序分块传输。输入格式为{"通信类型": {"mode":str, "config": None int 或者 list}},每种通信算子的融合配置有两个键:"mode"和"config"。支持以下通信类型的融合类型和配置:
|
||||
- allreduce:进行AllReduce算子的通信融合。"mode"包含:"auto"、"size"和"index"。在"auto"模式下,融合的是梯度变量的大小,默认值阈值为"64"MB,"config"对应的值为None。在"size"模式下,需要用户在config的字典中指定梯度大小阈值,这个值必须大于"0"MB。在"mode"为"index"时,它与"all_reduce_fusion_config"相同,用户需要给"config"传入一个列表,里面每个值表示梯度的索引。
|
||||
- allgather:进行AllGather算子的通信融合。"mode"包含:"auto"、"size"。"auto" 和 "size"模式的配置方式与AllReduce相同。
|
||||
- reducescatter:进行ReduceScatter算子的通信融合。"mode"包含:"auto"、"size"。"auto" 和 "size"模式的配置方式与AllReduce相同。
|
||||
|
||||
- allreduce: 进行AllReduce算子的通信融合。"mode"包含:"auto"、"size"和"index"。在"auto"模式下,融合的是梯度变量的大小,默认值阈值为"64"MB,"config"对应的值为None。在"size"模式下,需要用户在config的字典中指定梯度大小阈值,这个值必须大于"0"MB。在"mode"为"index"时,它与"all_reduce_fusion_config"相同,用户需要给"config"传入一个列表,里面每个值表示梯度的索引。
|
||||
- allgather: 进行AllGather算子的通信融合。"mode"包含:"auto"、"size"。"auto" 和 "size"模式的配置方式与AllReduce相同。
|
||||
- reducescatter: 进行ReduceScatter算子的通信融合。"mode"包含:"auto"、"size"。"auto" 和 "size"模式的配置方式与AllReduce相同。
|
||||
|
||||
**异常:**
|
||||
|
||||
**ValueError**:输入key不是自动并行上下文中的属性。
|
||||
异常:
|
||||
- **ValueError** - 输入key不是自动并行上下文中的属性。
|
||||
|
|
|
@ -68,73 +68,69 @@ mindspore.set_context
|
|||
| | disable_format_transform | GPU |
|
||||
+-------------------------+------------------------------+----------------------------+
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **device_id** (int) - 表示目标设备的ID,其值必须在[0, device_num_per_host-1]范围中,且 `device_num_per_host` 的值不应超过4096。默认值:0。
|
||||
- **device_target** (str) - 表示待运行的目标设备,支持'Ascend'、'GPU'和'CPU'。如果未设置此参数,则使用MindSpore包对应的后端设备。
|
||||
- **max_device_memory** (str) - 设置设备可用的最大内存。格式为"xxGB"。默认值:1024GB。实际使用的内存大小是设备的可用内存和 `max_device_memory` 值中的最小值。
|
||||
- **variable_memory_max_size** (str) - 此参数已弃用,将被删除。请使用 `max_device_memory` 。
|
||||
- **mempool_block_size** (str) - 设置PyNative模式下设备内存池的块大小。格式为"xxGB"。默认值:1GB。最小值是1GB。实际使用的内存池块大小是设备的可用内存和 `mempool_block_size` 值中的最小值。
|
||||
- **save_graphs** (bool) - 表示是否保存计算图。默认值:False。当 `save_graphs` 属性设为True时, `save_graphs_path` 属性用于设置中间编译图的存储路径。默认情况下,计算图保存在当前目录下。
|
||||
- **save_graphs_path** (str) - 表示保存计算图的路径。默认值:"."。如果指定的目录不存在,系统将自动创建该目录。在分布式训练中,图形将被保存到 `save_graphs_path/rank_${rank_id}/` 目录下。 `rank_id` 为集群中当前设备的ID。
|
||||
- **enable_dump** (bool) - 此参数已弃用,将在下一版本中删除。
|
||||
- **save_dump_path** (str) - 此参数已弃用,将在下一版本中删除。
|
||||
- **print_file_path** (str):该路径用于保存打印数据。使用时 :class:`mindspore.ops.Print` 可以打印输入的张量或字符串信息,使用方法 :func:`mindspore.parse_print` 解析保存的文件。如果设置了此参数,打印数据保存到文件,未设置将显示到屏幕。如果保存的文件已经存在,则将添加时间戳后缀到文件中。将数据保存到文件解决了屏幕打印中的数据丢失问题, 如果未设置,将报告错误:"prompt to set the upper absolute path"。
|
||||
- **env_config_path** (str) - 通过 `context.set_context(env_config_path="./mindspore_config.json")` 来设置MindSpore环境配置文件路径。
|
||||
|
||||
- **device_id** (int) - 表示目标设备的ID,其值必须在[0, device_num_per_host-1]范围中,且 `device_num_per_host` 的值不应超过4096。默认值:0。
|
||||
- **device_target** (str) - 表示待运行的目标设备,支持'Ascend'、'GPU'和'CPU'。如果未设置此参数,则使用MindSpore包对应的后端设备。
|
||||
- **max_device_memory** (str) - 设置设备可用的最大内存。格式为"xxGB"。默认值:1024GB。实际使用的内存大小是设备的可用内存和 `max_device_memory` 值中的最小值。
|
||||
- **variable_memory_max_size** (str) - 此参数已弃用,将被删除。请使用 `max_device_memory` 。
|
||||
- **mempool_block_size** (str) - 设置PyNative模式下设备内存池的块大小。格式为“xxGB”。默认值:1GB。最小值是1GB。实际使用的内存池块大小是设备的可用内存和 `mempool_block_size` 值中的最小值。
|
||||
- **save_graphs** (bool) - 表示是否保存计算图。默认值:False。当 `save_graphs` 属性设为True时, `save_graphs_path` 属性用于设置中间编译图的存储路径。默认情况下,计算图保存在当前目录下。
|
||||
- **save_graphs_path** (str) - 表示保存计算图的路径。默认值:"."。如果指定的目录不存在,系统将自动创建该目录。在分布式训练中,图形将被保存到 `save_graphs_path/rank_${rank_id}/` 目录下。 `rank_id` 为集群中当前设备的ID。
|
||||
- **enable_dump** (bool) - 此参数已弃用,将在下一版本中删除。
|
||||
- **save_dump_path** (str) - 此参数已弃用,将在下一版本中删除。
|
||||
- **print_file_path** (str):该路径用于保存打印数据。使用时 :class:`mindspore.ops.Print` 可以打印输入的张量或字符串信息,使用方法 :func:`mindspore.parse_print` 解析保存的文件。如果设置了此参数,打印数据保存到文件,未设置将显示到屏幕。如果保存的文件已经存在,则将添加时间戳后缀到文件中。将数据保存到文件解决了屏幕打印中的数据丢失问题, 如果未设置,将报告错误:"prompt to set the upper absolute path"。
|
||||
- **env_config_path** (str) - 通过 `context.set_context(env_config_path="./mindspore_config.json")` 来设置MindSpore环境配置文件路径。
|
||||
配置Running Data Recorder:
|
||||
|
||||
配置Running Data Recorder:
|
||||
- **enable**:表示在发生故障时是否启用Running Data Recorder去收集和保存训练中的关键数据。设置为True时,将打开Running Data Recorder。设置为False时,将关闭Running Data Recorder。
|
||||
- **mode**:指定在GRAPH_MODE(0)还是PYNATIVE_MODE(1)下运行,两种模式均支持所有后端。默认值:GRAPH_MODE(0)。
|
||||
- **path**:设置Running Data Recorder保存数据的路径。当前路径必须是一个绝对路径。
|
||||
|
||||
- **enable**:表示在发生故障时是否启用Running Data Recorder去收集和保存训练中的关键数据。设置为True时,将打开Running Data Recorder。设置为False时,将关闭Running Data Recorder。
|
||||
- **mode**:指定在GRAPH_MODE(0)还是PYNATIVE_MODE(1)下运行,两种模式均支持所有后端。默认值:GRAPH_MODE(0)。
|
||||
- **path**:设置Running Data Recorder保存数据的路径。当前路径必须是一个绝对路径。
|
||||
内存重用:
|
||||
|
||||
内存重用:
|
||||
- **mem_Reuse**:表示内存复用功能是否打开。设置为True时,将打开内存复用功能。设置为False时,将关闭内存复用功能。
|
||||
有关running data recoder和内存复用配置详细信息,请查看 `配置RDR和内存复用 <https://www.mindspore.cn/tutorials/experts/zh-CN/master/debug/custom_debug.html>`_。
|
||||
|
||||
- **mem_Reuse**:表示内存复用功能是否打开。设置为True时,将打开内存复用功能。设置为False时,将关闭内存复用功能。
|
||||
有关running data recoder和内存复用配置详细信息,请查看 `配置RDR和内存复用 <https://www.mindspore.cn/tutorials/experts/zh-CN/master/debug/custom_debug.html>`_。
|
||||
- **precompile_only** (bool) - 表示是否仅预编译网络。默认值:False。设置为True时,仅编译网络,而不执行网络。
|
||||
- **reserve_class_name_in_scope** (bool) - 表示是否将网络类名称保存到所属ScopeName中。默认值:True。每个节点都有一个ScopeName。子节点的ScopeName是其父节点。如果 `reserve_class_name_in_scope` 设置为True,则类名将保存在ScopeName中的关键字"net-"之后。例如:
|
||||
|
||||
Default/net-Net1/net-Net2 (reserve_class_name_in_scope=True)
|
||||
|
||||
- **precompile_only** (bool) - 表示是否仅预编译网络。默认值:False。设置为True时,仅编译网络,而不执行网络。
|
||||
- **reserve_class_name_in_scope** (bool) - 表示是否将网络类名称保存到所属ScopeName中。默认值:True。每个节点都有一个ScopeName。子节点的ScopeName是其父节点。如果 `reserve_class_name_in_scope` 设置为True,则类名将保存在ScopeName中的关键字“net-”之后。例如:
|
||||
Default/net/net (reserve_class_name_in_scope=False)
|
||||
|
||||
Default/net-Net1/net-Net2 (reserve_class_name_in_scope=True)
|
||||
- **pynative_synchronize** (bool) - 表示是否在PyNative模式下启动设备同步执行。默认值:False。设置为False时,将在设备上异步执行算子。当算子执行出错时,将无法定位特定错误脚本代码的位置。当设置为True时,将在设备上同步执行算子。这将降低程序的执行性能。此时,当算子执行出错时,可以根据错误的调用栈来定位错误脚本代码的位置。
|
||||
- **mode** (int) - 表示在GRAPH_MODE(0)或PYNATIVE_MODE(1)模式中的运行。默认值:GRAPH_MODE(0)。GRAPH_MODE或PYNATIVE_MODE可以通过 `mode` 属性设置,两种模式都支持所有后端。默认模式为GRAPH_MODE。
|
||||
- **enable_graph_kernel** (bool) - 表示开启图算融合去优化网络执行性能。默认值:False。如果 `enable_graph_kernel` 设置为True,则可以启用加速。有关图算融合的详细信息,请查看 `使能图算融合 <https://www.mindspore.cn/docs/zh-CN/master/design/graph_fusion_engine.html>`_ 。
|
||||
- **graph_kernel_flags** (str) - 图算融合的优化选项,当与enable_graph_kernel冲突时,它的优先级更高。其仅适用于有经验的用户。例如,context.set_context(graph_kernel_flags="--opt_level=2 --dump_as_text")。一些常用选项:
|
||||
|
||||
Default/net/net (reserve_class_name_in_scope=False)
|
||||
- **opt_level**:设置优化级别。默认值:2。当opt_level的值大于0时,启动图算融合。可选值包括:
|
||||
|
||||
- **pynative_synchronize** (bool) - 表示是否在PyNative模式下启动设备同步执行。默认值:False。设置为False时,将在设备上异步执行算子。当算子执行出错时,将无法定位特定错误脚本代码的位置。当设置为True时,将在设备上同步执行算子。这将降低程序的执行性能。此时,当算子执行出错时,可以根据错误的调用栈来定位错误脚本代码的位置。
|
||||
- **mode** (int) - 表示在GRAPH_MODE(0)或PYNATIVE_MODE(1)模式中的运行。默认值:GRAPH_MODE(0)。GRAPH_MODE或PYNATIVE_MODE可以通过 `mode` 属性设置,两种模式都支持所有后端。默认模式为GRAPH_MODE。
|
||||
- **enable_graph_kernel** (bool) - 表示开启图算融合去优化网络执行性能。默认值:False。如果 `enable_graph_kernel` 设置为True,则可以启用加速。有关图算融合的详细信息,请查看 `使能图算融合 <https://www.mindspore.cn/docs/zh-CN/master/design/graph_fusion_engine.html>`_ 。
|
||||
- **graph_kernel_flags** (str) - 图算融合的优化选项,当与enable_graph_kernel冲突时,它的优先级更高。其仅适用于有经验的用户。例如,context.set_context(graph_kernel_flags="--opt_level=2 --dump_as_text")。一些常用选项:
|
||||
- 0:关闭图算融合。
|
||||
- 1:启动算子的基本融合。
|
||||
- 2:包括级别1的所有优化,并打开更多的优化,如CSE优化算法、算术简化等。
|
||||
- 3:包括级别2的所有优化,并打开更多的优化,如SitchingFusion、ParallelFusion等。在某些场景下,该级别的优化激进且不稳定。使用此级别时要小心。
|
||||
|
||||
- **opt_level**:设置优化级别。默认值:2。当opt_level的值大于0时,启动图算融合。可选值包括:
|
||||
- **dump_as_text**:将关键过程的详细信息生成文本文件保存到"graph_kernel_dump"目录里。默认值:False。
|
||||
|
||||
- 0:关闭图算融合。
|
||||
- 1:启动算子的基本融合。
|
||||
- 2:包括级别1的所有优化,并打开更多的优化,如CSE优化算法、算术简化等。
|
||||
- 3:包括级别2的所有优化,并打开更多的优化,如SitchingFusion、ParallelFusion等。在某些场景下,该级别的优化激进且不稳定。使用此级别时要小心。
|
||||
有关更多选项,可以参考实现代码。
|
||||
|
||||
- **dump_as_text**:将关键过程的详细信息生成文本文件保存到"graph_kernel_dump"目录里。默认值:False。
|
||||
- **enable_reduce_precision** (bool) - 表示是否开启降低精度计算。默认值:True。设置为True时,不支持用户指定的精度,且精度将自动更改。设置为False时,如果未指定用例的精度,则会报错并退出。
|
||||
- **auto_tune_mode** (str) - 表示算子构建时的自动调整模式,以获得最佳的切分性能。默认值:NO_TUNE。其值必须在['RL', 'GA', 'RL,GA']范围中。
|
||||
|
||||
有关更多选项,可以参考实现代码。
|
||||
- RL:强化学习调优。
|
||||
- GA:遗传算法调优。
|
||||
- RL,GA:当RL和GA优化同时打开时,工具会根据网络模型中的不同算子类型自动选择RL或GA。RL和GA的顺序没有区别。(自动选择)。
|
||||
|
||||
- **enable_reduce_precision** (bool) - 表示是否开启降低精度计算。默认值:True。设置为True时,不支持用户指定的精度,且精度将自动更改。设置为False时,如果未指定用例的精度,则会报错并退出。
|
||||
- **auto_tune_mode** (str) - 表示算子构建时的自动调整模式,以获得最佳的切分性能。默认值:NO_TUNE。其值必须在['RL', 'GA', 'RL,GA']范围中。
|
||||
有关启用算子调优工具设置的更多信息,请查看 `使能算子调优工具 <https://www.mindspore.cn/tutorials/experts/zh-CN/master/debug/auto_tune.html>`_。
|
||||
|
||||
- RL:强化学习调优。
|
||||
- GA:遗传算法调优。
|
||||
- RL,GA:当RL和GA优化同时打开时,工具会根据网络模型中的不同算子类型自动选择RL或GA。RL和GA的顺序没有区别。(自动选择)。
|
||||
- **check_bprop** (bool) - 表示是否检查反向传播节点,以确保反向传播节点输出的形状(shape)和数据类型与输入参数相同。默认值:False。
|
||||
- **max_call_depth** (int) - 指定函数调用的最大深度。其值必须为正整数。默认值:1000。当嵌套Cell太深或子图数量太多时,需要设置 `max_call_depth` 参数。系统最大堆栈深度应随着 `max_call_depth` 的调整而设置为更大的值,否则可能会因为系统堆栈溢出而引发 "core dumped" 异常。
|
||||
- **grad_for_scalar** (bool) - 表示是否获取标量梯度。默认值:False。当 `grad_for_scalar` 设置为True时,则可以导出函数的标量输入。由于后端目前不支持伸缩操作,所以该接口只支持在前端可推演的简单操作。
|
||||
- **enable_compile_cache** (bool) - 表示是否加载或者保存前端编译的图。当 `enable_compile_cache` 被设置为True时,在第一次执行的过程中,一个硬件无关的编译缓存会被生成并且导出为一个MINDIR文件。当该网络被再次执行时,如果 `enable_compile_cache` 仍然为True并且网络脚本没有被更改,那么这个编译缓存会被加载。注意目前只支持有限的Python脚本更改的自动检测,这意味着可能有正确性风险。默认值:False。这是一个实验特性,可能会被更改或者删除。
|
||||
- **compile_cache_path** (str) - 保存前端图编译缓存的路径。默认值:"."。如果目录不存在,系统会自动创建这个目录。缓存会被保存到如下目录: `compile_cache_path/rank_${rank_id}/` 。 `rank_id` 是集群上当前设备的ID。
|
||||
- **runtime_num_threads** (int) - 运行时线程池的线程数控制。默认值为30。
|
||||
- **disable_format_transform** (bool) - 表示是否取消NCHW到NHWC的自动格式转换功能。当fp16的网络性能不如fp32的时,可以设置 `disable_format_transform` 为True,以尝试提高训练性能。默认值:False。
|
||||
|
||||
|
||||
有关启用算子调优工具设置的更多信息,请查看 `使能算子调优工具 <https://www.mindspore.cn/tutorials/experts/zh-CN/master/debug/auto_tune.html>`_。
|
||||
|
||||
- **check_bprop** (bool) - 表示是否检查反向传播节点,以确保反向传播节点输出的形状(shape)和数据类型与输入参数相同。默认值:False。
|
||||
- **max_call_depth** (int) - 指定函数调用的最大深度。其值必须为正整数。默认值:1000。当嵌套Cell太深或子图数量太多时,需要设置 `max_call_depth` 参数。系统最大堆栈深度应随着 `max_call_depth` 的调整而设置为更大的值,否则可能会因为系统堆栈溢出而引发 "core dumped" 异常。
|
||||
- **grad_for_scalar** (bool): 表示是否获取标量梯度。默认值:False。当 `grad_for_scalar` 设置为True时,则可以导出函数的标量输入。由于后端目前不支持伸缩操作,所以该接口只支持在前端可推演的简单操作。
|
||||
- **enable_compile_cache** (bool) - 表示是否加载或者保存前端编译的图。当 `enable_compile_cache` 被设置为True时,在第一次执行的过程中,一个硬件无关的编译缓存会被生成并且导出为一个MINDIR文件。当该网络被再次执行时,如果 `enable_compile_cache` 仍然为True并且网络脚本没有被更改,那么这个编译缓存会被加载。注意目前只支持有限的Python脚本更改的自动检测,这意味着可能有正确性风险。默认值:False。这是一个实验特性,可能会被更改或者删除。
|
||||
- **compile_cache_path** (str) - 保存前端图编译缓存的路径。默认值:"."。如果目录不存在,系统会自动创建这个目录。缓存会被保存到如下目录: `compile_cache_path/rank_${rank_id}/` 。 `rank_id` 是集群上当前设备的ID。
|
||||
- **runtime_num_threads** (int) - 运行时线程池的线程数控制。 默认值为30。
|
||||
- **disable_format_transform** (bool) - 表示是否取消NCHW到NHWC的自动格式转换功能。当fp16的网络性能不如fp32的时,可以设置 `disable_format_transform` 为True,以尝试提高训练性能。默认值:False。
|
||||
|
||||
**异常:**
|
||||
|
||||
**ValueError**:输入key不是上下文中的属性。
|
||||
异常:
|
||||
- **ValueError** - 输入key不是上下文中的属性。
|
||||
|
|
|
@ -14,9 +14,8 @@ mindspore.set_dump
|
|||
- 此API只在Ascend后端的图模式有效。
|
||||
- 此API只支持训练开始前调用。如果在训练过程中调用这个API,可能不会有效果。
|
||||
- 使用 `set_dump(Cell, True)` 后,Cell正向计算和反向计算(梯度运算产生的计算)中的算子会被Dump。
|
||||
- 对于 :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` 层,正向计算和反向计算使用同一组算子。因此,只能看到反向计算中的Dump数据。请注意,当使用 `sparse=True` 和 `reduce=“mean”` 初始化时, :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` 层也将在内部使用这些算子。
|
||||
- 对于 :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` 层,正向计算和反向计算使用同一组算子。因此,只能看到反向计算中的Dump数据。请注意,当使用 `sparse=True` 和 `reduce="mean"` 初始化时, :class:`mindspore.nn.SoftmaxCrossEntropyWithLogits` 层也将在内部使用这些算子。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **target** (Union[Cell, Primitive]) - 要设置Dump标志的Cell或Primitive的实例。
|
||||
- **enabled** (bool,可选) - True表示启用Dump,False表示禁用Dump,默认值:True。
|
||||
参数:
|
||||
- **target** (Union[Cell, Primitive]) - 要设置Dump标志的Cell或Primitive的实例。
|
||||
- **enabled** (bool,可选) - True表示启用Dump,False表示禁用Dump,默认值:True。
|
|
@ -18,16 +18,14 @@ mindspore.set_ps_context
|
|||
- MS_WORKER:表示工作进程。
|
||||
- MS_PSERVER/MS_SERVER:表示参数服务器。
|
||||
|
||||
**参数:**
|
||||
|
||||
- **enable_ps** (bool) - 表示是否启用参数服务器训练模式。只有在enable_ps设置为True后,环境变量才会生效。默认值:False。
|
||||
- **config_file_path** (string) - 配置文件路径,用于容灾恢复等, 目前参数服务器训练模式仅支持Server容灾。默认值:''。
|
||||
- **scheduler_manage_port** (int) - 调度器HTTP端口,对外开放用于接收和处理用户扩容/缩容等请求。默认值:11202。
|
||||
- **enable_ssl** (bool) - 设置是否打开SSL认证。默认值:True。
|
||||
- **client_password** (str) - 用于解密客户端证书密钥的密码。默认值:''。
|
||||
- **server_password** (str) - 用于解密服务端证书密钥的密码。默认值:''。
|
||||
参数:
|
||||
- **enable_ps** (bool) - 表示是否启用参数服务器训练模式。只有在enable_ps设置为True后,环境变量才会生效。默认值:False。
|
||||
- **config_file_path** (string) - 配置文件路径,用于容灾恢复等, 目前参数服务器训练模式仅支持Server容灾。默认值:''。
|
||||
- **scheduler_manage_port** (int) - 调度器HTTP端口,对外开放用于接收和处理用户扩容/缩容等请求。默认值:11202。
|
||||
- **enable_ssl** (bool) - 设置是否打开SSL认证。默认值:True。
|
||||
- **client_password** (str) - 用于解密客户端证书密钥的密码。默认值:''。
|
||||
- **server_password** (str) - 用于解密服务端证书密钥的密码。默认值:''。
|
||||
|
||||
|
||||
**异常:**
|
||||
|
||||
**ValueError**:输入key不是参数服务器训练模式上下文中的属性。
|
||||
异常:
|
||||
- **ValueError** - 输入key不是参数服务器训练模式上下文中的属性。
|
||||
|
|
|
@ -11,11 +11,9 @@ mindspore.set_seed
|
|||
- numpy.random.seed()设置的种子仅能被numpy.random使用,而这个API设置的种子也可被numpy.random使用,因此推荐使用这个API设置所有的种子。
|
||||
- 在semi_auto_parallel/auto_parallel模式下,使用set_seed时,同一节点具有相同形状和相同切分策略的权重将被初始化为相同的结果,否则,将被初始化为不同的结果。
|
||||
|
||||
**参数:**
|
||||
参数:
|
||||
- **seed** (int) - 设置的全局种子。
|
||||
|
||||
- **seed** (int) – 设置的全局种子。
|
||||
|
||||
**异常:**
|
||||
|
||||
- **ValueError** – 种子值非法 (小于0)。
|
||||
- **TypeError** – 种子值非整型数。
|
||||
异常:
|
||||
- **ValueError** - 种子值非法 (小于0)。
|
||||
- **TypeError** - 种子值非整型数。
|
||||
|
|
Loading…
Reference in New Issue