diff --git a/docs/mindspore/source_en/api_python/env_var_list.rst b/docs/mindspore/source_en/api_python/env_var_list.rst
index 0bc589169b940428946daf19e63daaf6ee99516e..134a513a77b5e02469a94e0ca4efab544e159983 100644
--- a/docs/mindspore/source_en/api_python/env_var_list.rst
+++ b/docs/mindspore/source_en/api_python/env_var_list.rst
@@ -728,7 +728,7 @@ Log
If `GLOG_log_dir` is specified and the value of `GLOG_logtostderr` is 1, the logs are output to the screen and not to the file
- The log saving path is: `specified path/rank_${rank_id}/logs/`. Under non-distributed training scenario, `rank_id` is 0, while under distributed training scenario, `rank_id` is the ID of the current device in the cluster
+ The log saving path is: `specified path/rank_${RANK_ID}/logs/`. Under non-distributed training scenario, `RANK_ID` is 0, while under distributed training scenario, `RANK_ID` is the ID of the current device in the cluster
C++ and Python logs are output to different files. The C++ logs follow the `GLOG` log file naming rules. In this case `mindspore.machine name. user name.log.log level.timestamp.Process ID`, the Python log file name is `mindspore.log.process ID`.
diff --git a/docs/mindspore/source_en/api_python/operator_list_parallel.md b/docs/mindspore/source_en/api_python/operator_list_parallel.md
index 126c2b3cfd6b90135e96715feb3c48573e11f63f..404041f703c6c5116333cd4034bde7afdf00b8e9 100644
--- a/docs/mindspore/source_en/api_python/operator_list_parallel.md
+++ b/docs/mindspore/source_en/api_python/operator_list_parallel.md
@@ -132,9 +132,9 @@
| [mindspore.ops.TensorScatterAdd](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterAdd.html) | The second input cannot be split, the top n-1 dimension of the third input (n is the dimension of the second input) cannot be split, and the remaining k dimensions (excluding the top n-1 dimension) of the third input are consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
| [mindspore.ops.TensorScatterDiv](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterDiv.html) | The second input cannot be split, the top n-1 dimension of the third input (n is the dimension of the second input) cannot be split, and the remaining k dimensions (excluding the top n-1 dimension) of the third input are consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
| [mindspore.ops.TensorScatterMax](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMax.html) | The top m dimension of the first input cannot be cut (m is the value of the last dimension of the second input indexes [- 1]). The second input cannot be split. The top n-1 dimension of the third input (n is the dimension of the second input) cannot be split. The partitions of the remaining k dimensions (excluding the top n-1 dimension) of the third input is consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
-| [mindspore.ops.TensorScatterMax](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMin.html) | The top m dimension of the first input cannot be cut (m is the value of the last dimension of the second input indexes [- 1]). The second input cannot be split. The top n-1 dimension of the third input (n is the dimension of the second input) cannot be split. The partitions of the remaining k dimensions (excluding the top n-1 dimension) of the third input is consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
+| [mindspore.ops.TensorScatterMin](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMin.html) | The top m dimension of the first input cannot be cut (m is the value of the last dimension of the second input indexes [- 1]). The second input cannot be split. The top n-1 dimension of the third input (n is the dimension of the second input) cannot be split. The partitions of the remaining k dimensions (excluding the top n-1 dimension) of the third input is consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
| [mindspore.ops.TensorScatterMul](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMul.html) | The second input cannot be split, the top n-1 dimension of the third input (n is the dimension of the second input) cannot be split, and the remaining k dimensions (excluding the top n-1 dimension) of the third input are consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
-| [mindspore.ops.TensorScatterAdd](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterSub.html) | The second input cannot be split, the top n-1 dimension of the third input (n is the dimension of the second input) cannot be split, and the remaining k dimensions (excluding the top n-1 dimension) of the third input are consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
+| [mindspore.ops.TensorScatterSub](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterSub.html) | The second input cannot be split, the top n-1 dimension of the third input (n is the dimension of the second input) cannot be split, and the remaining k dimensions (excluding the top n-1 dimension) of the third input are consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
| [mindspore.ops.TensorScatterUpdate](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.TensorScatterUpdate.html) | The top m dimension of the first input cannot be cut (m is the value of the last dimension of the second input indexes [- 1]). The second input cannot be split. The top n-1 dimension of the third input (n is the dimension of the second input) cannot be split. The partitions of the remaining k dimensions (excluding the top n-1 dimension) of the third input is consistent with the last k partitions of the first input; In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
| [mindspore.ops.Select](https://www.mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.Select.html) | In auto_parallel mode, the dual recursive algorithm is not supported. | Not support config layout |
| [mindspore.ops.SeLU](https://mindspore.cn/docs/en/r2.7.0/api_python/ops/mindspore.ops.SeLU.html) | None | Not support config layout |
diff --git a/docs/mindspore/source_en/faq/distributed_parallel.md b/docs/mindspore/source_en/faq/distributed_parallel.md
index e871340069a796bd2ea90de98dc7323fac485156..ab6d0fbde1775328cd572dc60e43cc021ccc440f 100644
--- a/docs/mindspore/source_en/faq/distributed_parallel.md
+++ b/docs/mindspore/source_en/faq/distributed_parallel.md
@@ -4,7 +4,7 @@
## Q: What should I do if the error message `Init plugin so failed, ret = 1343225860` is displayed during the HCCL distributed training?
-A: When the user starts distributed training on the Ascend and meets the error that HCCL fails to be initialized, the possible cause is that `rank_table.json` is incorrect. You can use the tool in [hccl_tools.py](https://gitee.com/mindspore/models/blob/master/utils/hccl_tools/hccl_tools.py) to generate new `rank_table.json`. Alternatively, set the environment variable `export ASCEND_SLOG_PRINT_TO_STDOUT=1` to enable the log printing function of HCCL and check the ERROR log information.
+A: When the user starts distributed training on the Ascend and meets the error that HCCL fails to be initialized, the possible cause is that `rank_table.json` is incorrect. You can use the tool in [hccl_tools.py](https://gitee.com/mindspore/models/blob/master/utils/hccl_tools/hccl_tools.py) to generate new `rank_table.json`. Alternatively, export the environment variable `export ASCEND_SLOG_PRINT_TO_STDOUT=1` to enable the log printing function of HCCL and check the ERROR log information.
diff --git a/docs/mindspore/source_en/faq/implement_problem.md b/docs/mindspore/source_en/faq/implement_problem.md
index 0b9e32d75f576b1ee7167991019b200d3f6cc58e..cc68af669c5d9771ee4f28e951fc4190cff48aa9 100644
--- a/docs/mindspore/source_en/faq/implement_problem.md
+++ b/docs/mindspore/source_en/faq/implement_problem.md
@@ -221,7 +221,7 @@ net = Vgg(cfg['16'], num_classes=num_classes, args=args, batch_norm=args.batch_n
## Q: How to obtain middle-layer features of a VGG model?
-A: Obtaining the middle-layer features of a network is not closely related to the specific framework. For the `vgg` model defined in `torchvison`, the `features` field can be used to obtain the "middle-layer features". The `vgg` source code of `torchvison` is as follows:
+A: Obtaining the middle-layer features of a network is not closely related to the specific framework. For the `vgg` model defined in `torchvision`, the `features` field can be used to obtain the "middle-layer features". The `vgg` source code of `torchvision` is as follows:
```python
class VGG(nn.Module):
diff --git a/docs/mindspore/source_en/faq/installation.md b/docs/mindspore/source_en/faq/installation.md
index 5c103bdfd6049b25042335f0771a97bb553d0ca0..fccae2151a8a0b98b2e32acba5beacf0d6ea5f23 100644
--- a/docs/mindspore/source_en/faq/installation.md
+++ b/docs/mindspore/source_en/faq/installation.md
@@ -22,7 +22,7 @@ A: First, check the name of the installation package under the output directory,
Solution 1: You can rename the installation package and then try to install it. For example, rename the above installation package to mindspore-1.6.0-cp37-cp37m-macosx_10_15_x84_64.whl.
-Solution 2: Before compiling the source code, set the environment variable `MACOSX_DEPOLYMENT_TARGET` to `10.15` and recompile.
+Solution 2: Before compiling the source code, set the environment variable `MACOSX_DEPLOYMENT_TARGET` to `10.15` and recompile.
diff --git a/docs/mindspore/source_zh_cn/api_python/env_var_list.rst b/docs/mindspore/source_zh_cn/api_python/env_var_list.rst
index eef3b8adc665a31b99db2b7b2b235fe9b9156387..741c175dc35f6cc6cdbb59dceea37dc1ef4bbd24 100644
--- a/docs/mindspore/source_zh_cn/api_python/env_var_list.rst
+++ b/docs/mindspore/source_zh_cn/api_python/env_var_list.rst
@@ -449,7 +449,7 @@ Dump调试
0:关闭Debugger选中节点的内存复用
-
* - MS_OM_PATH
- - 配置task异常时dump数据路径以及图编译出错时dump的analyze_fail.ir文件的保存目录,保存路径为:指定的路径/rank_${rand_id}/om
+ - 配置task异常时dump数据路径以及图编译出错时dump的analyze_fail.ir文件的保存目录,保存路径为:指定的路径/rank_${rank_id}/om
- String
- 文件路径,支持相对路径与绝对路径
-
@@ -620,7 +620,7 @@ Dump调试
depend_dest_list(List[string]):需要插入控制边的终端算子名称列表,需要和depend_src_list中的算子按顺序一一对应,否则插入控制边的动作将失效。
delete_depend_list(List[string]):需要被删除的算子名称列表,算子名称不存在或者和graph_id不匹配,删除节点的动作将失效。
- * - MS_DEV_ENABLE_PASS_CIRCEL_RECOVERY
+ * - MS_DEV_ENABLE_PASS_CIRCLE_RECOVERY
- 控制是否使能自动检测并行pass导致的计算图成环,并回退并行pass对计算图的修改功能。
- Integer
- 1:开启自动检测并行pass导致的计算图成环,并回退并行pass对计算图的修改功能。
@@ -722,7 +722,7 @@ Dump调试
若指定了 `GLOG_log_dir` 且 `GLOG_logtostderr` 的值为1时,则日志输出到屏幕,不输出到文件
- 日志保存路径为: `指定的路径/rank_${rank_id}/logs/` ,非分布式训练场景下, `rank_id` 为0;分布式训练场景下, `rank_id` 为当前设备在集群中的ID
+ 日志保存路径为: `指定的路径/rank_${RANK_ID}/logs/` ,非分布式训练场景下, `RANK_ID` 为0;分布式训练场景下, `RANK_ID` 为当前设备在集群中的ID
C++和Python的日志会被输出到不同的文件中,C++日志的文件名遵从 `GLOG` 日志文件的命名规则,这里是 `mindspore.机器名.用户名.log.日志级别.时间戳.进程ID` ,Python日志的文件名为 `mindspore.log.进程ID`
@@ -816,7 +816,7 @@ Dump调试
* - GLOG_logfile_mode
- 用于控制MindSpore中GLOG日志文件的权限,是GLOG的环境变量
- 八进制数字
- - 可参考Linux文件权限设置的数字表示,默认值:0640(取值)
+ - 可参考Linux文件权限设置的数字表示,默认值:0640
-
* - MS_RDR_ENABLE
- 是否开启程序运行数据记录器(RDR),如果MindSpore出现了运行异常,会自动导出MindSpore中预先记录的数据以辅助定位运行异常的原因
@@ -918,7 +918,7 @@ Dump调试
- 取值
- 说明
* - OPTION_PROTO_LIB_PATH
- - PROTO依赖库库路径
+ - PROTO依赖库路径
- String
- 目录路径,支持相对路径与绝对路径
-
diff --git a/docs/mindspore/source_zh_cn/api_python/operator_list_parallel.md b/docs/mindspore/source_zh_cn/api_python/operator_list_parallel.md
index f02b5e236a46273f3c81520495b011a6efd0a43d..6279f04d9dc82b0f1f640a064e5e50dc0c33baab 100644
--- a/docs/mindspore/source_zh_cn/api_python/operator_list_parallel.md
+++ b/docs/mindspore/source_zh_cn/api_python/operator_list_parallel.md
@@ -132,9 +132,9 @@
| [mindspore.ops.TensorScatterAdd](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterAdd.html) | 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
| [mindspore.ops.TensorScatterDiv](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterDiv.html) | 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
| [mindspore.ops.TensorScatterMax](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMax.html) | 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
-| [mindspore.ops.TensorScatterMax](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMin.html) | 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
+| [mindspore.ops.TensorScatterMin](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMin.html) | 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
| [mindspore.ops.TensorScatterMul](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterMul.html) | 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
-| [mindspore.ops.TensorScatterAdd](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterSub.html) | 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
+| [mindspore.ops.TensorScatterSub](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterSub.html) | 第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
| [mindspore.ops.TensorScatterUpdate](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.TensorScatterUpdate.html) | 第一个输入前m维度不能切(m为第二个输入indices的最后一维的值indices[-1])第二个输入不能切分,第三个输入的前n-1维(n为第二个输入的维度)不能切分,第三个输入的剩下k个维度(除去前n-1维度)的切分与第一个输入的最后k个切分一致;在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
| [mindspore.ops.Select](https://www.mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.Select.html) | 在auto_parallel模式下,不支持双递归算法。 | 不支持配置Layout |
| [mindspore.ops.SeLU](https://mindspore.cn/docs/zh-CN/r2.7.0/api_python/ops/mindspore.ops.SeLU.html) | 无 | 不支持配置Layout |
diff --git a/docs/mindspore/source_zh_cn/faq/data_processing.md b/docs/mindspore/source_zh_cn/faq/data_processing.md
index bf7ef2272757644b251d94c51b0b1ffe5c51813c..dd3e320c362fee71464256fb645d74d46e9995a0 100644
--- a/docs/mindspore/source_zh_cn/faq/data_processing.md
+++ b/docs/mindspore/source_zh_cn/faq/data_processing.md
@@ -319,7 +319,7 @@ A:如果将DataLoader考虑为接收自定义Dataset的API接口,MindSpore
## Q: 自定义的Dataset出现错误时,应该如何调试?
-A:自定义的Dataset通常会传入到GeneratorDataset,在使用过程中错误指向了自定义的Dataset时,可通过一些方式进行调试(如增加打印信息,打印返回值的shape、dtype等),自定义Dataset通常要保持中间处理结果为numpy array,且不建议与MindSpore网络计算的算子混合使用。此外针对自定义的Dataset如下面的MyDataset,初始化后也可直接进行如下遍历(主要为简化调试,分析原始Dataset中的问题,可不传入GeneratorDataset),调试遵循常规的Python语法规则。
+A: 自定义的Dataset通常会传入到GeneratorDataset,在使用过程中错误指向了自定义的Dataset时,可通过一些方式进行调试(如增加打印信息,打印返回值的shape、dtype等),自定义Dataset通常要保持中间处理结果为numpy array,且不建议与MindSpore网络计算的算子混合使用。此外针对自定义的Dataset如下面的MyDataset,初始化后也可直接进行如下遍历(主要为简化调试,分析原始Dataset中的问题,可不传入GeneratorDataset),调试遵循常规的Python语法规则。
```python
Dataset = MyDataset()
@@ -338,13 +338,13 @@ A:通常数据处理操作与网络计算算子混合使用会导致性能有
## Q: MindRecord为何会生成.db文件? 缺少.db文件时加载数据集会有什么报错?
-A:.db文件为MindRecord文件对应的索引文件,缺少.db文件通常会在获取数据集总的数据量时报错,错误提示如:`MindRecordOp Count total rows failed`。
+A: .db文件为MindRecord文件对应的索引文件,缺少.db文件通常会在获取数据集总的数据量时报错,错误提示如:`MindRecordOp Count total rows failed`。
## Q: 自定义Dataset中如何进行图像读取并进行Decode操作?
-A:传入GeneratorDataset的自定义Dataset,在接口内部(如`__getitem__`函数)进行图像读取后可以直接返回bytes类型的数据、numpy array类型的数组或已经做了解码操作的numpy array,具体如下所示:
+A: 传入GeneratorDataset的自定义Dataset,在接口内部(如`__getitem__`函数)进行图像读取后可以直接返回bytes类型的数据、numpy array类型的数组或已经做了解码操作的numpy array,具体如下所示:
- 读取图像后直接返回bytes类型的数据
@@ -551,7 +551,7 @@ A: 在使用数据下沉模式(此时 `数据预处理` -> `发送队列` -> `
## Q: 数据处理阶段报错 `Malloc device memory failed, free memory size is less than half of total memory size.Device 0 Device MOC total size:65464696832 Device MOC free size:3596279808 may be other processes occupying this card, ...` 怎么办?
-A:通常是使用了自定义数据增强操作(其中包含了基于Ascend的数据增强操作)且使用了多进程模式,导致多进程使用同一个卡资源出现设备内存不足。
+A:通常是使用了自定义数据增强操作(其中包含了基于Ascend的数据增强操作)且使用了多进程模式,导致多进程使用同一个卡资源出现设备内存不足。
报错信息如下:
diff --git a/docs/mindspore/source_zh_cn/faq/distributed_parallel.md b/docs/mindspore/source_zh_cn/faq/distributed_parallel.md
index aba3596c9f05e989bee11e2291f1a4f92d4ece5b..a661a8c722adae7826b661a3c96eaf5023b242a5 100644
--- a/docs/mindspore/source_zh_cn/faq/distributed_parallel.md
+++ b/docs/mindspore/source_zh_cn/faq/distributed_parallel.md
@@ -4,13 +4,13 @@
## Q: 进行HCCL分布式训练出错:`Init plugin so failed, ret = 1343225860`,该如何处理?
-A: 在Ascend进行分布式训练时初始化HCCL失败了,通常由于`rank_table.json`没写对,可以执行此文件[hccl_tools.py](https://gitee.com/mindspore/models/blob/master/utils/hccl_tools/hccl_tools.py)生成一个新的`rank_table.json`。或者导入环境变量`export ASCEND_SLOG_PRINT_TO_STDOUT=1`打开HCCL的日志打印,根据日志中的ERROR信息来排查问题。
+A: 在Ascend进行分布式训练时初始化HCCL失败了,通常由于`rank_table.json`配置不正确,可以执行此文件[hccl_tools.py](https://gitee.com/mindspore/models/blob/master/utils/hccl_tools/hccl_tools.py)生成一个新的`rank_table.json`。或者导出环境变量`export ASCEND_SLOG_PRINT_TO_STDOUT=1`打开HCCL的日志打印,根据日志中的ERROR信息来排查问题。
-## Q:GPU分布式训练场景下,若错误设置环境变量CUDA_VISIBLE_DEVICES的个数小于执行的进程数时,可能导致进程阻塞问题,该如何处理?
+## Q: GPU分布式训练场景下,若错误设置环境变量CUDA_VISIBLE_DEVICES的个数小于执行的进程数时,可能导致进程阻塞问题,该如何处理?
-A:此场景下,部分训练进程会提示如下报错:
+A: 此场景下,部分训练进程会提示如下报错:
```text
[ERROR] DEVICE [mindspore/ccsrc/runtime/device/gpu/cuda_driver.cc:245] SetDevice] SetDevice for id:7 failed, ret[101], invalid device ordinal. Please make sure that the 'device_id' set in context is in the range:[0, total number of GPU). If the environment variable 'CUDA_VISIBLE_DEVICES' is set, the total number of GPU will be the number set in the environment variable 'CUDA_VISIBLE_DEVICES'. For example, if export CUDA_VISIBLE_DEVICES=4,5,6, the 'device_id' can be 0,1,2 at the moment, 'device_id' starts from 0, and 'device_id'=0 means using GPU of number 4.
@@ -24,14 +24,14 @@ A:此场景下,部分训练进程会提示如下报错:
```
此步骤中会调用`NCCL`接口`ncclCommInitRank`,该接口会阻塞,直到所有进程达成一致。因此如果某进程没有调用`ncclCommInitRank`,则会导致进程阻塞。
-此问题我们已向`NCCL`社区反馈,社区开发者正在设计解决方案中,目前最新版本还未修复,详见[issue链接](https://github.com/NVIDIA/nccl/issues/593#issuecomment-965939279)。
+此问题我们已向`NCCL`社区反馈,社区开发者正在设计解决方案,目前最新版本还未修复,详见[issue链接](https://github.com/NVIDIA/nccl/issues/593#issuecomment-965939279)。
解决方法:手动`kill`训练进程,根据报错日志,设置正确的卡号后,重启训练任务。
-## Q:GPU分布式训练场景下,若某进程异常退出,可能导致其余进程阻塞问题,该如何处理?
+## Q: GPU分布式训练场景下,若某进程异常退出,可能导致其余进程阻塞问题,该如何处理?
-A:此场景下,异常进程由于各种问题退出,其余进程由于GPU资源已分配成功,会正常执行到初始化`NCCL`步骤,日志如下:
+A: 此场景下,异常进程由于各种问题退出,其余进程由于GPU资源已分配成功,会正常执行到初始化`NCCL`步骤,日志如下:
```text
[INFO] DEVICE [mindspore/ccsrc/runtime/hardware/gpu/gpu_device_context.cc:90] Initialize] Start initializing NCCL communicator for device 1
@@ -43,7 +43,7 @@ A:此场景下,异常进程由于各种问题退出,其余进程由于GPU
-## Q:在执行GPU单机单卡的脚本时,不使用mpirun启动进程时,调用mindspore.communication.init方法可能会报错,导致执行失败,该如何处理?
+## Q: 在执行GPU单机单卡的脚本时,不使用mpirun启动进程时,调用mindspore.communication.init方法可能会报错,导致执行失败,该如何处理?
```text
[CRITICAL] DISTRIBUTED [mindspore/ccsrc/distributed/cluster/cluster_context.cc:130] InitNodeRole] Role name is invalid...
@@ -53,14 +53,14 @@ A:在用户不使用`mpirun`启动进程,但是依然调用了`init()`方法
-## Q:在通过OpenMPI执行多机多卡训练时,提示由于MPI_Allgather失败,该如何处理?
+## Q: 在通过OpenMPI执行多机多卡训练时,提示由于MPI_Allgather失败,该如何处理?
```text
pml_ucx.c:175 Error: Failed to receive UCX worker address: Not found (-13)
pml_ucx.c:452 Error: Failed to resolve UCX endpoint for rank X
```
-A:此问题是`OpenMPI`在Host侧通信时,无法和对端地址进行通信,一般是机器之间的网卡配置不同导致的,可以通过手动设置网卡名或者子网的方式解决:
+A: 此问题是`OpenMPI`在Host侧通信时,无法和对端地址进行通信,一般是机器之间的网卡配置不同导致的,可以通过手动设置网卡名或者子网的方式解决:
```text
mpirun -n process_num --mca btl tcp --mca btl_tcp_if_include eth0 ./run.sh
@@ -78,14 +78,14 @@ mpirun -n process_num --mca btl tcp --mca btl_tcp_if_include 192.168.1.0/24 ./ru
-## Q:在通过OpenMPI执行分布式训练时,单机多卡训练正常,但在多机多卡训练时,某些机器提示GPU device id设置失败,该如何处理?
+## Q: 在通过OpenMPI执行分布式训练时,单机多卡训练正常,但在多机多卡训练时,某些机器提示GPU device id设置失败,该如何处理?
```text
[ERROR] DEVICE [mindspore/ccsrc/runtime/device/gpu/cuda_driver.cc:245] SetDevice] SetDevice for id:7 failed, ret[101], invalid device ordinal. Please make sure that the 'device_id' set in context is in the range:[0, total number of GPU). If the environment variable 'CUDA_VISIBLE_DEVICES' is set, the total number of GPU will be the number set in the environment variable 'CUDA_VISIBLE_DEVICES'. For example, if export CUDA_VISIBLE_DEVICES=4,5,6, the 'device_id' can be 0,1,2 at the moment, 'device_id' starts from 0, and 'device_id'=0 means using GPU of number 4.
[ERROR] DEVICE [mindspore/ccsrc/runtime/device/gpu/gpu_device_manager.cc:27] InitDevice] Op Error: Failed to set current device id | Error Number: 0
```
-A:在多机场景下,各进程卡号需要通过在Host侧`AllGather` `HOSTNAME`后计算得到,如果机器间有使用相同的`HOSTNAME`,则进程卡号会计算出错,导致卡号越界而设置失败。可以在执行脚本中设置每台机器的HOSTNAME为各自的IP地址来解决:
+A: 在多机场景下,各进程卡号需要通过在Host侧`AllGather` `HOSTNAME`后计算得到,如果机器间有使用相同的`HOSTNAME`,则进程卡号会计算出错,导致卡号越界而设置失败。可以在执行脚本中设置每台机器的HOSTNAME为各自的IP地址来解决:
```text
export HOSTNAME=node_ip_address
@@ -93,13 +93,13 @@ export HOSTNAME=node_ip_address
-## Q:在通过OpenMPI执行多机多卡训练时,NCCL报错提示网络不通,该如何处理?
+## Q: 在通过OpenMPI执行多机多卡训练时,NCCL报错提示网络不通,该如何处理?
```text
include/socket.h:403 NCCL WARN Connect to XXX failed: Network is unreachable
```
-A:此问题是`NCCL`在Host侧同步进程信息或者初始化通信域时,无法和对端地址进行通信,一般是机器之间的网卡配置不同导致的,可以通过设置`NCCL`环境变量`NCCL_SOCKET_IFNAME`,进行网卡选择:
+A: 此问题是`NCCL`在Host侧同步进程信息或者初始化通信域时,无法和对端地址进行通信,一般是机器之间的网卡配置不同导致的,可以通过设置`NCCL`环境变量`NCCL_SOCKET_IFNAME`,进行网卡选择:
```text
export NCCL_SOCKET_IFNAME=eth
@@ -109,7 +109,7 @@ export NCCL_SOCKET_IFNAME=eth
-## Q:多机多卡选择特定名称的RDMA网卡(通过NCCL_SOCKET_IFNAME设置)通信后,训练仍然报错,该如何处理?
+## Q: 多机多卡选择特定名称的RDMA网卡(通过NCCL_SOCKET_IFNAME设置)通信后,训练仍然报错,该如何处理?
```text
misc/ibvwrap.cc:284 NCCL WARN Call to ibv_modify_qp failed with error Invalid argument
@@ -117,7 +117,7 @@ misc/ibvwrap.cc:284 NCCL WARN Call to ibv_modify_qp failed with error Invalid ar
include/socket.h:403 NCCL WARN Connect to XXX failed: Connection refused
```
-A:一般此问题是多机之间RDMA网卡配置存在差异,需要具体情况具体分析。但常见原因是存在某些主机网卡存在IB协议和RoCE协议同时存在的情况,可能出现连接建立失败的情况。解决方案:
+A: 一般此问题是多机之间RDMA网卡配置存在差异,需要具体情况具体分析。但常见原因是某些主机网卡存在IB协议和RoCE协议同时存在,可能出现连接建立失败的情况。解决方案:
需要使用以下指令指定使用的RDMA网卡名为ib开头:
@@ -127,7 +127,7 @@ export NCCL_IB_HCA=mlx
-## Q:单机多卡训练能够成功,但是扩展脚本到多机多卡后,其他主机提示各类报错,该如何处理?
+## Q: 单机多卡训练能够成功,但是扩展脚本到多机多卡后,其他主机提示各类报错,该如何处理?
报错内容有多种,下面是几种典型的报错,可能有:
@@ -135,7 +135,7 @@ export NCCL_IB_HCA=mlx
2. IB网卡通信失败。
3. Cuda库加载失败。
-A:这些问题,都是由于在`mpirun`启动其他主机时,其他主机的环境变量(包括NCCL的网卡选择配置)没有与本机同步,导致了单机多卡正常执行而多机多卡失败的现象。解决方法是通过mpirun的-x选项,导出特定的环境变量:
+A: 这些问题,都是由于在`mpirun`启动其他主机时,其他主机的环境变量(包括NCCL的网卡选择配置)没有与本机同步,导致了单机多卡正常执行而多机多卡失败的现象。解决方法是通过mpirun的-x选项,导出特定的环境变量:
```text
mpirun --hostfile /path/to/hostfile -n 64 -x PYTHONPATH -x GLOG_v -x LD_LIBRARY_PATH -x NCCL_SOCKET_IFNAME -x NCCL_IB_HCA -x NCCL_DEBUG=INFO python train.py
@@ -151,7 +151,7 @@ mpirun --hostfile /path/to/hostfile -n 64 -x PYTHONPATH -x GLOG_v -x LD_LIBRARY_
Ascend collective Error: "HcclCommInitRootInfo failed. | Error Number 2
```
-A: OpenMPI启动时,当前版本的hccl下,创建通信域时,相应的卡需要分配大约300M的device内存,因此每张卡所在的通信域的数量越多,则额外需要的内存越多,因此会有内存不足的问题。
+A: OpenMPI启动时,当前版本的hccl下,创建通信域时,相应的卡需要分配大约300M的device内存,每张卡所在的通信域的数量越多,则额外需要的内存越多,因此会有内存不足的问题。
可以设置`set_memory`中的`max_size`来减少Ascend进程可用的内存,从而为hccl预留足够的内存创建通信域。
@@ -227,7 +227,7 @@ mindspore/ccsrc/distributed/collective/collective_manager.cc:1123 WaitCommInitDo
mindspore/ccsrc/plugin/device/cpu/hal/hardware/ms_collective_comm_lib.cc:260 QueryUniqueID
```
-A: 以上报错为创建通信域阶段,通信域内的非rootrank进程向scheduler进程索取该rootinfo信息超时。在多卡HCCL后端,不传入环境变量 `RANK_TABLE_FILE` 也不传msrun参数 `--rank_table_file` 的场景下,框架默认使用HCCL自协商初始化通信域接口。创建通信域阶段,同一个通信域内,rootrank的进程会调用HCCL接口获取rootinfo信息,然后通过host侧tcp链接传递给scheduler进程;而通信域内的其他rank进程,会通过tcp链接向scheduler进程索取该rootinfo信息。为了保证同一通信域内,所有rank都拿到rootinfo之后,再继续调用HCCL的初始化接口,框架提供了重复QueryUniqueID且在一定时间后超时退出的能力,默认的超时时间为200s。以下是针对报错的解决方法:
+A: 以上报错为创建通信域阶段,通信域内的非root rank进程向scheduler进程索取该rootinfo信息超时。在多卡HCCL后端,不传入环境变量 `RANK_TABLE_FILE` 也不传msrun参数 `--rank_table_file` 的场景下,框架默认使用HCCL自协商初始化通信域接口。创建通信域阶段,同一个通信域内,root rank的进程会调用HCCL接口获取rootinfo信息,然后通过host侧tcp链接传递给scheduler进程;而通信域内的其他rank进程,会通过tcp链接向scheduler进程索取该rootinfo信息。为了保证同一通信域内,所有rank都拿到rootinfo之后,再继续调用HCCL的初始化接口,框架提供了重复QueryUniqueID且在一定时间后超时退出的能力,默认的超时时间为200s。以下是针对报错的解决方法:
1. 查看 `scheduler.log` ,检查scheduler进程的状态是否异常。一般情况下,scheduler进程都在正常等待worker进程结束工作,如下:
diff --git a/docs/mindspore/source_zh_cn/faq/feature_advice.md b/docs/mindspore/source_zh_cn/faq/feature_advice.md
index 331e21171ae40dda9478483294c04c6e99785a3d..ed69171670600edd715753b58ec18df37c26efb1 100644
--- a/docs/mindspore/source_zh_cn/faq/feature_advice.md
+++ b/docs/mindspore/source_zh_cn/faq/feature_advice.md
@@ -62,7 +62,7 @@ A: MindSpore除了支持华为自己的`Ascend`之外,也支持`GPU`与`CPU`
## Q: MindSpore对导出、导入模型的单个Tensor输入大小有什么限制?
-A: 由于Protobuf的硬件限制,导出ONNX格式时,模型参数大小不能超过2G;导出MINDIR格式时,模型参数大小没有限制,MindSpore不支持导入ONNX格式,只支持导入MINDIR。 MINDIR的导入不存在模型参数大小限制。
+A: 由于Protobuf的硬件限制,导出ONNX格式时,模型参数大小不能超过2G;导出MINDIR格式时,模型参数大小没有限制,MindSpore不支持导入ONNX格式,只支持导入MINDIR。MINDIR的导入不存在模型参数大小限制。
diff --git a/docs/mindspore/source_zh_cn/faq/implement_problem.md b/docs/mindspore/source_zh_cn/faq/implement_problem.md
index 0ac008c22cdfed512e97659ab6072f8cb1417d59..913b31e312e92e05be12e83a363d8c81df3b4dd8 100644
--- a/docs/mindspore/source_zh_cn/faq/implement_problem.md
+++ b/docs/mindspore/source_zh_cn/faq/implement_problem.md
@@ -8,7 +8,7 @@ A: 在多尺度训练过程中,使用不同`shape`调用`Cell`对象的时候
-## Q: 如果MindSpore的`requires_grad=False`的`tensor`转化为`numpy`类型进行处理然后再转化会`tensor`,会对计算图和反向传播有影响吗?
+## Q: 如果MindSpore的`requires_grad=False`的`tensor`转化为`numpy`类型进行处理然后再转化为`tensor`,会对计算图和反向传播有影响吗?
A: 在PyNative模式下,如果中间使用`numpy`计算,会导致梯度传递中断,`requires_grad=False`的场景下,如果该`tensor`的反向传播不传给其他参数使用,是没有影响的;如果`requires_grad=True`的场景下,是有影响的。
@@ -221,7 +221,7 @@ net = Vgg(cfg['16'], num_classes=num_classes, args=args, batch_norm=args.batch_n
## Q: 如何得到VGG模型中间层特征?
-A: 你好,获取网络中间层的特征,其实跟具体框架没有太大关系了。`torchvison`里定义的`vgg`模型,可以通过`features`字段获取"中间层特征",`torchvison`的`vgg`源码如下:
+A: 你好,获取网络中间层的特征,其实跟具体框架没有太大关系了。`torchvision`里定义的`vgg`模型,可以通过`features`字段获取"中间层特征",`torchvision`的`vgg`源码如下:
```python
class VGG(nn.Module):
@@ -329,7 +329,7 @@ A: 在CPU ARM上进行resnet50训练时,部分算子的实现是基于oneDNN
## Q: 为什么在Ascend平台执行模型时报错`Stream isn't enough`?
-A: 流表示一个操作队列,同一条流上的任务按序串行执行,不同流之间可以并行执行。网络中的各种操作会生成Task并被分配到流上,以控制任务执行的并发方式。由于Ascend平台对同一条流上的的任务数存在限制,超限的任务会分配新流,且MindSpore框架的多种并行方式也会分配新流,例如通信算子并行,因此当分配流的数目超过Ascend平台的资源限制就会报流超限的错误。参考解决方案:
+A: 流表示一个操作队列,同一条流上的任务按序串行执行,不同流之间可以并行执行。网络中的各种操作会生成Task并被分配到流上,以控制任务执行的并发方式。由于Ascend平台对同一条流上的任务数存在限制,超限的任务会分配新流,且MindSpore框架的多种并行方式也会分配新流,例如通信算子并行,因此当分配流的数目超过Ascend平台的资源限制就会报流超限的错误。参考解决方案:
- 减小网络模型规模
diff --git a/docs/mindspore/source_zh_cn/faq/inference.md b/docs/mindspore/source_zh_cn/faq/inference.md
index 5e4747023b4fe29eb9bfc33ed2aa64b5309c3243..6e4a21e9feca61e918eaac3b1861d221dda4ad44 100644
--- a/docs/mindspore/source_zh_cn/faq/inference.md
+++ b/docs/mindspore/source_zh_cn/faq/inference.md
@@ -4,7 +4,7 @@
## Q: 原先基于MindSpore安装包进行Atlas 200/300/500推理产品推理,新版本MindSpore发布包不支持Atlas 200/300/500推理产品平台的推理?如何使用Atlas 200/300/500推理产品进行推理?(MindSpore Atlas 200/300/500推理产品推理功能发布包变更说明)
-A: 由于MindSpore推理功能统一由MindSpore核心组件 - MindSpore lite提供。自2.0版本起,统一由MindSpore lite发布Atlas 200/300/500推理产品推理包,并提供相关功能的持续维护演进,而MindSpore主发布包里的对应接口不再维护和演进。自2.2版本起MindSpore主发布包不再提供配套Atlas 200/300/500推理产品的推理接口使能,如需使用请切换安装MindSpore Lite发布包或下载MindSpore 2.0之前的版本。MindSpore lite的安装部署与用法详见 。
+A: 由于MindSpore推理功能统一由MindSpore核心组件 - MindSpore Lite提供。自2.0版本起,统一由MindSpore Lite发布Atlas 200/300/500推理产品推理包,并提供相关功能的持续维护演进,而MindSpore主发布包里的对应接口不再维护和演进。自2.2版本起MindSpore主发布包不再提供配套Atlas 200/300/500推理产品的推理接口使能,如需使用请切换安装MindSpore Lite发布包或下载MindSpore 2.0之前的版本。MindSpore Lite的安装部署与用法详见 。
Atlas 200/300/500推理产品是面向边缘场景的高能效高集成度AI处理器,支持对MindIR格式模型进行推理。原先MindSpore提供了两种在Atlas 200/300/500推理产品硬件上的推理使能用法:
diff --git a/docs/mindspore/source_zh_cn/faq/installation.md b/docs/mindspore/source_zh_cn/faq/installation.md
index 78aa5a929b14d65af618d18ede4fa7ea4fd2eddb..3b848ef10f8df839cb539803d8c5c38dc4c8958c 100644
--- a/docs/mindspore/source_zh_cn/faq/installation.md
+++ b/docs/mindspore/source_zh_cn/faq/installation.md
@@ -6,7 +6,7 @@
### Q: 使用pip安装时报错: `ERROR: mindspore_{VERSION}.whl is not a supported wheel on this platform`应该怎么办?
-A: pip会通过wheel安装包的文件名来判断该安装包是否与当前Python环境兼容,例如安装mindspore_ascend-1.2.0-cp37-cp37m-linux_aarch64.whl时,pip会检查:
+A: pip会通过wheel安装包的文件名来判断该安装包是否与当前Python环境兼容,例如安装mindspore_ascend-1.2.0-cp37-cp37m-linux_aarch64.whl时,pip会检查:
1. 当前python环境为3.7.x版本
2. 当前操作系统为Linux
@@ -22,7 +22,7 @@ A: 首先检查output目录下编译得到的安装包名,类似mindspore-1.6.
解决方法一:可以重命名安装包后再尝试安装,例如将上述安装包重命名为mindspore-1.6.0-cp37-cp37m-macosx_10_15_x84_64.whl。
-解决方法二:在源码编译前,设置环境变量`MACOSX_DEPOLYMENT_TARGET`为`10.15`并重新编译。
+解决方法二:在源码编译前,设置环境变量`MACOSX_DEPLOYMENT_TARGET`为`10.15`并重新编译。
@@ -260,7 +260,7 @@ export LD_LIBRARY_PATH=`python -c "import distutils.sysconfig as sysconfig; prin
A: 常见原因有两种: Ascend AI处理器配套软件包或固件/驱动包版本不正确,或没有安装在默认位置且未配置相应的环境变量。
-1. 打开Ascend AI处理器配套软件包安装目录,默认`/usr/local/Ascend`下,各个子目录中的`version.info`文件,观察其版本号是否与当前使用的MindSpore版本一直,参照[安装页面](https://www.mindspore.cn/install/)中关于Ascend AI处理器配套软件包版本的描述。如果版本不配套,请更换软件包或MindSpore版本。
+1. 打开Ascend AI处理器配套软件包安装目录,默认`/usr/local/Ascend`下,各个子目录中的`version.info`文件,观察其版本号是否与当前使用的MindSpore版本一致,参照[安装页面](https://www.mindspore.cn/install/)中关于Ascend AI处理器配套软件包版本的描述。如果版本不配套,请更换软件包或MindSpore版本。
2. 检查Ascend AI处理器配套软件包与其他依赖软件是否安装在默认位置,MindSpore会尝试从默认安装位置`/usr/local/Ascend`自动加载,如果将Ascend软件包安装在自定义位置,请参照[安装页面](https://www.mindspore.cn/install/)页面的安装指南一栏设置环境变量。如果将其他依赖软件安装在自定义位置,请根据其位置关系设置`LD_LIBRARY_PATH`环境变量。
diff --git a/docs/mindspore/source_zh_cn/faq/network_compilation.md b/docs/mindspore/source_zh_cn/faq/network_compilation.md
index 1d3b322e4a2316798b23edc2f5c14bc39f161ac9..3fee053ee397f8d44829d9e26a4a68cb7b447045 100644
--- a/docs/mindspore/source_zh_cn/faq/network_compilation.md
+++ b/docs/mindspore/source_zh_cn/faq/network_compilation.md
@@ -187,7 +187,7 @@ A: MindSpore编译网络时通过 `inspect.getsourcelines(self.fn)` 获取网络
## Q: 报错提示中的`Corresponding forward node candidate:”或“Corresponding code candidate:`是什么意思?
-A: `Corresponding forward node candidate:`为关联的正向网络中的代码,表示该反向传播算子与该正向代码对应。`Corresponding code candidate:`表示该算子是由这些代码融合而来,其中分符“-”用以区分不同的代码。
+A: `Corresponding forward node candidate:`为关联的正向网络中的代码,表示该反向传播算子与该正向代码对应。`Corresponding code candidate:`表示该算子是由这些代码融合而来,其中分隔符“-”用以区分不同的代码。
例如:
@@ -240,7 +240,7 @@ A: 当需要加速执行时,MindSpore会将Python源码转换成一种基于
-## Q: 编译时报出告警:`On the Ascend platform, if you read-only access to the parameter, you can take the value of the parameter, so that the system can do more optimization.`,是什么意思?
+## Q: 编译时报出告警:`On the Ascend platform, if you read-only access to the parameter, you can take the value of the parameter, so that the system can do more optimization.`,是什么意思?
A: 由于Ascend平台不能真正返回一个内存地址,导致在整图下沉模式下,对于控制流场景中返回值存在参数的情况,会存在一些问题。为了避免出现问题,会对这种场景切换到统一运行时模式,从整图下沉模式切换到统一运行时模式,网络性能可能会劣化。如果控制流子图的返回值仅使用参数的值,可以通过参数的value接口获取参数的值,从而避免模式切换导致的性能劣化。