!28769 context api master 0110

Merge pull request !28769 from mindspore_ding/context_api_0110_master
This commit is contained in:
i-robot 2022-01-13 12:25:41 +00:00 committed by Gitee
commit 4f86ae55f8
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 21 additions and 19 deletions

View File

@ -1,16 +1,16 @@
mindspore.context
===================
MindSpore上下文,用于配置当前执行环境,包括执行模式、执行后端和其他特性开关。
MindSpore context,用于配置当前执行环境,包括执行模式、执行后端和其他特性开关。
.. py:function:: mindspore.context.set_context(**kwargs)
设置运行环境的上下文
设置运行环境的context
在运行程序之前,应配置上下文。如果没有配置,默认情况下将根据设备目标进行自动设置。
在运行程序之前,应配置context。如果没有配置,默认情况下将根据设备目标进行自动设置。
.. note::
设置属性时,必须输入属性名称。初始化网络后不建议更改模式因为某些操作在图模式和PyNative模式下是不同的。默认值GRAPH_MODE。
设置属性时,必须输入属性名称。
某些配置适用于特定的设备,有关详细信息,请参见下表:
@ -75,18 +75,18 @@ MindSpore上下文用于配置当前执行环境包括执行模式、执
**参数:**
- **device_id** (int) - 表示目标设备的ID其值必须在[0, device_num_per_host-1]范围中,且 `device_num_per_host` 的值不应超过4096。默认值0。
- **device_target** (str) - 表示待运行的目标设备,支持Ascend、GPU和CPU。如果未设置设备目标则使用MindSpore包的版本
- **device_target** (str) - 表示待运行的目标设备,支持'Ascend'、'GPU'和'CPU'。如果未设置此参数则使用MindSpore包对应的后端设备
- **max_device_memory** (str) - 设置设备可用的最大内存。目前仅在GPU上支持。格式为“xxGB”。默认值1024GB。实际使用的内存大小是设备的可用内存和 `max_device_memory` 值中的最小值。
- **variable_memory_max_size** (str) - 设置可变内存的最大值。默认值30GB。设置此参数后,框架使用的最大内存受配置值的限制。
- **variable_memory_max_size** (str) - 设置可变内存的最大值。默认值30GB。
- **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。
- **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) - 此参数已弃用,将在下一版本中删除。
- **enable_profiling** (bool) - 此参数已弃用将在下一版本中删除。请使用mindspore.profiler.Profiler API。
- **profiling_options** (str) - 此参数已弃用将在下一版本中删除。请使用mindspore.profiler.Profiler API。
- **print_file_path** (str) - 表示用于保存打印数据的路径。如果设置了该参数,默认将打印数据保存到文件中。如果不设置 `print_file_path` 则显示该屏幕。如果保存的文件已经存在将添加时间戳后缀到文件中。将数据保存到文件中解决了在产生大量数据时屏幕打印中数据丢失的问题。如果没有设置该参数则会报错prompt to set the upper absolute path
- **env_config_path** (str) - 通过context.set_context(env_config_path="./mindspore_config.json")来配置DFX的路径。
- **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
@ -96,9 +96,11 @@ MindSpore上下文用于配置当前执行环境包括执行模式、执
内存重用:
- **mem_Reuse**表示内存复用功能是否打开。设置为True时将打开内存复用功能。设置为False时将关闭内存复用功能。
有关running data recoder和内存复用配置详细信息请查看`配置RDR和内存复用 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/custom_debugging_info.html>`_
- **precompile_only** (bool) - 表示是否仅预编译网络。默认值False。设置为True时仅编译网络而不执行网络。
- **reserve_class_name_in_scope** (bool) - 表示是否将网络类名称保存到所属作用域中。默认值True。每个节点都有一个作用域。子节点的作用域是其父节点。如果 `reserve_class_name_in_scope` 设置为True则类名将保存在作用域中的关键字“net-”之后。例如:
- **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)
@ -106,7 +108,7 @@ MindSpore上下文用于配置当前执行环境包括执行模式、执
- **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/programming_guide/zh-CN/master/enable_graph_kernel_fusion.html>`_
- **enable_graph_kernel** (bool) - 表示开启图算融合去优化网络执行性能。默认值False。如果 `enable_graph_kernel` 设置为True则可以启用加速。有关图算融合的详细信息请查看 `使能图算融合 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/enable_graph_kernel_fusion.html>`_
- **graph_kernel_flags** (str) - 图算融合的优化选项当与enable_graph_kernel冲突时它的优先级更高。其仅适用于有经验的用户。例如context.set_context(graph_kernel_flags="--opt_level=2 --dump_as_text")。一些常用选项:
- **opt_level**设置优化级别。默认值2。当opt_level的值大于0时启动图算融合。可选值包括
@ -116,7 +118,7 @@ MindSpore上下文用于配置当前执行环境包括执行模式、执
- 2包括级别1的所有优化并打开更多的优化如CSE优化算法、算术简化等。
- 3包括级别2的所有优化并打开更多的优化如SitchingFusion、ParallelFusion等。在某些场景下该级别的优化激进且不稳定。使用此级别时要小心。
- **dump_as_text**:将详细信息转储为文本文件。默认值False。
- **dump_as_text**:将关键过程的详细信息生成文本文件保存到"graph_kernel_dump"目录里。默认值False。
有关更多选项,可以参考实现代码。
@ -131,10 +133,10 @@ MindSpore上下文用于配置当前执行环境包括执行模式、执
有关启用算子调优工具设置的更多信息,请查看 `使能算子调优工具 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/enable_auto_tune.html>`_
- **check_bprop** (bool) - 表示是否检查反向传播节点,以确保反向传播节点输出的形状(shape)和数据类型与输入参数相同。默认值False。
- **max_call_depth** (int) - 指定函数调用的最大深度。其值必须为正整数。默认值1000。当嵌套Cell太深或子图数量太多时需要设置 `max_call_depth` 参数。如果 `max_call_depth` 的值比以前的大,则应把系统最大堆栈深度设得更大,否则可能会因为系统堆栈溢出而引发 `core dumped` 异常。
- **max_call_depth** (int) - 指定函数调用的最大深度。其值必须为正整数。默认值1000。当嵌套Cell太深或子图数量太多时需要设置 `max_call_depth` 参数。系统最大堆栈深度应随着 `max_call_depth` 的调整而设置为更大的值,否则可能会因为系统堆栈溢出而引发 "core dumped" 异常。
- **enable_sparse** (bool) - 表示是否启用稀疏特征。默认值False。有关稀疏特征和稀疏张量的详细信息请查看 `稀疏张量 <https://www.mindspore.cn/docs/programming_guide/zh-CN/master/tensor.html#sparse-tensor>`_
- **grad_for_scalar** (bool) 表示是否获取标量梯度。默认值False。当 `grad_for_scalar` 设置为True时衍生函数的标量输入。默认值为False。由于后端目前不支持伸缩操作,所以该接口只支持在前端可推演的简单操作。
- **enable_compile_cache** (bool) - 表示是否加载或者保存前端编译的图。当 `enable_compile_cache` 被设置为True时在第一次执行的过程中一个硬件无关的编译缓存会被生成并且导出为一个MINDIR文件。当该网络被再次执行时如果 `enable_compile_cache` 仍然为True并且网络脚本没有被更改那么这个编译缓存会被加载。注意目前只支持有限的Python脚本更改的自动检测这意味着可能有正确性风险。默认值False。这是一个实验原型,可能会被更改或者删除。
- **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。
**异常:**
@ -171,7 +173,7 @@ MindSpore上下文用于配置当前执行环境包括执行模式、执
.. py:function:: mindspore.context.get_context(attr_key)
根据输入key获取上下文中的属性值。如果某些属性没有设置,则会自动获取这些属性的默认值。
根据输入key获取context中的属性值。如果该key没有设置则会获取它们这些的默认值。
**参数:**
@ -183,7 +185,7 @@ MindSpore上下文用于配置当前执行环境包括执行模式、执
**异常:**
**ValueError**输入key不是上下文中的属性。
**ValueError**输入key不是context中的属性。
**样例:**

View File

@ -6,7 +6,7 @@ mindspore.set_seed
设置全局种子。
.. note::
- 全局种子可用于numpy.random,mindspore.common.Initializer,mindspore.ops.composite.random_ops以及mindspore.nn.probability.distribution。
- 全局种子可用于numpy.random, mindspore.common.Initializer, mindspore.ops.composite.random_ops以及mindspore.nn.probability.distribution。
- 如果没有设置全局种子这些包将会各自使用自己的种子numpy.random和mindspore.common.Initializer将会随机选择种子值mindspore.ops.composite.random_ops和mindspore.nn.probability.distribution将会使用零作为种子值。
- numpy.random.seed()设置的种子仅能被numpy.random使用而这个API设置的种子也可被numpy.random使用因此推荐使用这个API设置所有的种子。