You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

mindspore.dataset.config.rst 11 kB

4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. mindspore.dataset.config
  2. =========================
  3. config模块能够设置或获取数据处理的全局配置参数。
  4. API示例所需模块的导入代码如下:
  5. .. code-block::
  6. import mindspore.dataset as ds
  7. .. py:function:: mindspore.dataset.config.set_sending_batches(batch_num)
  8. 在昇腾设备中使用sink_mode=True进行训练时,设置默认的发送批次。
  9. **参数:**
  10. - **batch_num** (int) - 表示总的发送批次。当设置了 `batch_num` 时,它将会等待,除非增加发送批次。默认值为0,表示将发送数据集中的所有批次。
  11. **异常:**
  12. - **TypeError** - `batch_num` 不是int类型。
  13. .. py:function:: mindspore.dataset.config.load(file)
  14. 从文件格式中加载项目配置。
  15. **参数:**
  16. - **file** (str) - 表示待加载的配置文件的路径。
  17. **异常:**
  18. - **RuntimeError** - 文件无效,解析失败。
  19. .. py:function:: mindspore.dataset.config.set_seed(seed)
  20. 如果设置了种子,生成的随机数将被固定,这有助于产生确定性结果。
  21. .. note::
  22. 此函数在Python随机库和numpy.random库中设置种子,以便随机进行确定性Python增强。此函数应与创建的每个迭代器一起调用,以重置随机种子。在管道中,这并不保证 `num_parallel_workers` 大于1。
  23. **参数:**
  24. - **seed** (int) - 表示随机数量的种子。该参数用于生成确定性随机数。
  25. **异常:**
  26. - **TypeError** - `seed` 不是int类型。
  27. - **ValueError** - `seed` 小于0或 `seed` 大于 `UINT32_MAX(4294967295)` 时, `seed` 无效。
  28. .. py:function:: mindspore.dataset.config.get_seed()
  29. 获取随机数的种子。如果随机数的种子已设置,则返回设置的值,否则将返回std::mt19937::default_seed这个默认种子值。
  30. **返回:**
  31. int,表示种子的随机数量。
  32. .. py:function:: mindspore.dataset.config.set_prefetch_size(size)
  33. 设置管道中线程的队列容量。
  34. **参数:**
  35. - **size** (int) - 表示缓存队列的长度。
  36. **异常:**
  37. - **TypeError** - `size` 不是int类型。
  38. - **ValueError** - `size` 小于等于0或 `size` 大于 `INT32_MAX(2147483647)` 时,线程的队列容量无效。
  39. .. note::
  40. 用于预取的总内存可能会随着工作线程数量的增加而快速增长,所以当工作线程数量大于4时,每个工作线程的预取大小将减少。
  41. 每个工作线程在运行时预取大小将是 `prefetchsize` * (4 / `num_parallel_workers` )。
  42. .. py:function:: mindspore.dataset.config.get_prefetch_size()
  43. 获取数据处理管道的输出缓存队列长度。
  44. **返回:**
  45. int,表示预取的总行数。
  46. .. py:function:: mindspore.dataset.config.set_num_parallel_workers(num)
  47. 为并行工作线程数量设置新的全局配置默认值。
  48. 此设置会影响所有数据集操作的并行性。
  49. **参数:**
  50. - **num** (int) - 表示并行工作线程的数量,用作为每个操作的默认值。
  51. **异常:**
  52. - **TypeError** - `num` 不是int类型。
  53. - **ValueError** - `num` 小于等于0或 `num` 大于 `INT32_MAX(2147483647)` 时,并行工作线程数量设置无效。
  54. .. py:function:: mindspore.dataset.config.get_num_parallel_workers()
  55. 获取并行工作线程数量的全局配置。
  56. 这是并行工作线程数量的值,用于每个操作。
  57. **返回:**
  58. int,表示每个操作中默认的并行工作进程的数量。
  59. .. py:function:: mindspore.dataset.config.set_numa_enable(numa_enable)
  60. 设置NUMA的默认状态为启动状态。如果 `numa_enable` 为True,则需要确保安装了NUMA库。
  61. **参数:**
  62. - **numa_enable** (bool) - 表示是否使用NUMA绑定功能。
  63. **异常:**
  64. - **TypeError** - `numa_enable` 不是布尔数据类型。
  65. .. py:function:: mindspore.dataset.config.get_numa_enable()
  66. 获取NUMA的启动状态。
  67. 该状态将用于所有进程。
  68. **返回:**
  69. bool,表示NUMA的启动状态。
  70. .. py:function:: mindspore.dataset.config.set_monitor_sampling_interval(interval)
  71. 设置监测采样的默认间隔时间(毫秒)。
  72. **参数:**
  73. - **interval** (int) - 表示用于性能监测采样的间隔时间(毫秒)。
  74. **异常:**
  75. - **TypeError** - `interval` 不是int类型。
  76. - **ValueError** - `interval` 小于等于0或 `interval` 大于 `INT32_MAX(2147483647)` 时, `interval` 无效。
  77. .. py:function:: mindspore.dataset.config.get_monitor_sampling_interval()
  78. 获取性能监控采样时间间隔的全局配置。
  79. **返回:**
  80. int,表示性能监控采样间隔时间(毫秒)。
  81. .. py:function:: mindspore.dataset.config.set_callback_timeout(timeout)
  82. 为DSWaitedCallback设置的默认超时时间(秒)。
  83. 如果出现死锁,等待函数将在超时时间结束后退出。
  84. **参数:**
  85. - **timeout** (int) - 表示在出现死锁情况下,用于结束DSWaitedCallback中等待的超时时间(秒)。
  86. **异常:**
  87. - **TypeError** - `timeout` 不是int类型。
  88. - **ValueError** - `timeout` 小于等于0或 `timeout` 大于 `INT32_MAX(2147483647)` 时 `timeout` 无效。
  89. .. py:function:: mindspore.dataset.config.get_callback_timeout()
  90. 获取DSWaitedCallback的默认超时时间。
  91. 如果出现死锁,等待的函数将在超时时间结束后退出。
  92. **返回:**
  93. int,表示在出现死锁情况下,用于结束DSWaitedCallback中的等待函数的超时时间(秒)。
  94. .. py:function:: mindspore.dataset.config.set_auto_num_workers(enable)
  95. 自动为每个数据集操作设置并行线程数量(默认情况下,此功能关闭)。
  96. 如果启用该功能,将自动调整每个数据集操作中的并行线程数量,这可能会覆盖用户传入的并行线程数量或通过ds.config.set_num_parallel_workers()设置的默认值(如果用户未传递任何内容)。
  97. 目前,此函数仅针对具有per_batch_map(batch中的运行映射)的YOLOv3数据集进行了优化。
  98. 此功能旨在为每个操作的优化线程数量分配提供基线。
  99. 并行线程数有所调整的数据集操作将会被记录。
  100. **参数:**
  101. - **enable** (bool) - 表示是否启用自动设置线程数量的特性。
  102. **异常:**
  103. - **TypeError** - enable不是布尔类型。
  104. .. py:function:: mindspore.dataset.config.get_auto_num_workers()
  105. 获取当前是否开启自动线程调整。
  106. **返回:**
  107. bool,表示是否开启自动线程调整。
  108. .. py:function:: mindspore.dataset.config.set_enable_shared_mem(enable)
  109. 设置共享内存标志的是否启用。如果 `shared_mem_enable` 为True,则使用共享内存队列将数据传递给为数据集操作而创建的进程,而这些数据集操作将设置 `python_multiprocessing` 为True。
  110. .. note::
  111. Windows和MacOS平台尚不支持 `set_enable_shared_mem` 。
  112. **参数:**
  113. - **enable** (bool) - 表示当 `python_multiprocessing` 为True时,是否在数据集操作中使用共享内存。
  114. **异常:**
  115. - **TypeError** - `enable` 不是布尔数据类型。
  116. .. py:function:: mindspore.dataset.config.get_enable_shared_mem()
  117. 获取当前是否开启共享内存。
  118. .. note::
  119. Windows和MacOS平台尚不支持 `get_enable_shared_mem` 。
  120. **返回:**
  121. bool,表示是否启用共享内存。
  122. .. py:function:: mindspore.dataset.config.set_enable_autotune(enable, json_filepath=None)
  123. 设置是否开启自动数据加速。
  124. 自动数据加速用于在训练过程中根据环境资源的负载,自动调整数据处理管道全局配置,提高数据处理的速度。
  125. 可以通过设置 `json_filepath` 将优化后的全局配置保存为JSON文件,以便后续复用。
  126. **参数:**
  127. - **enable** (bool) - 是否开启自动数据加速。
  128. - **json_filepath** (str,可选) - 优化后的全局配置的保存路径,当路径存在同名文件时会自动覆盖。默认值:None,表示不保存配置文件。
  129. **异常:**
  130. - **TypeError** - 当 `enable` 的类型不为布尔型。
  131. - **TypeError** - 当 `json_filepath` 的类型不为字符串。
  132. - **RuntimeError** - 当 `json_filepath` 为空字符串。
  133. - **RuntimeError** - 当 `json_filepath` 为目录。
  134. - **RuntimeError** - 当 `json_filepath` 路径不存在。
  135. - **RuntimeError** - 当 `json_filepath` 没有写入权限。
  136. .. note:: 当 `enable` 为 False 时,`json_filepath` 值将会被忽略。
  137. .. py:function:: mindspore.dataset.config.get_enable_autotune()
  138. 获取当前是否开启自动数据加速。
  139. **返回:**
  140. bool,表示是否开启自动数据加速。
  141. .. py:function:: mindspore.dataset.config.set_autotune_interval(interval)
  142. 设置自动数据加速的配置调整step间隔。
  143. 默认设置为0,将在每个epoch结束后调整配置;否则,将每隔 `interval` 个step调整一次配置。
  144. **参数:**
  145. - **interval** (int) - 配置调整的step间隔。
  146. **异常:**
  147. - **TypeError** - 当 `interval` 类型不为整型。
  148. - **ValueError** - 当 `interval` 不为非负数。
  149. .. py:function:: mindspore.dataset.config.get_autotune_interval()
  150. 获取当前自动数据加速的配置调整step间隔。
  151. **返回:**
  152. int,自动数据加速的配置调整step间隔。
  153. .. py:function:: mindspore.dataset.config.set_enable_watchdog(enable)
  154. 设置watchdog Python线程是否启用。默认情况下,watchdog Python线程是启用的。watchdog Python线程负责清理卡死或假死的子进程。
  155. **参数:**
  156. - **enable** (bool) - 是否开启watchdog Python线程。默认情况下,watchdog Python线程是启用的。
  157. **异常:**
  158. - **TypeError** - `enable` 不是布尔数据类型。
  159. .. py:function:: mindspore.dataset.config.get_enable_watchdog()
  160. 获取当前是否开启watchdog Python线程。默认初始状态是开启。
  161. **返回:**
  162. bool,表示是否开启watchdog Python线程。
  163. .. py:function:: mindspore.dataset.config.set_multiprocessing_timeout_interval(interval)
  164. 设置在多进程/多线程下,主进程/主线程获取数据超时时,告警日志打印的默认时间间隔(秒)。
  165. **参数:**
  166. - **interval** (int) - 表示多进程/多线程下,主进程/主线程获取数据超时时,告警日志打印的时间间隔(秒)。
  167. **异常:**
  168. - **TypeError** - `interval` 不是int类型。
  169. - **ValueError** - `interval` 小于等于0或 `interval` 大于 `INT32_MAX(2147483647)` 时, `interval` 无效。
  170. .. py:function:: mindspore.dataset.config.get_multiprocessing_timeout_interval()
  171. 获取在多进程/多线程下,主进程/主线程获取数据超时时,告警日志打印的时间间隔的全局配置。
  172. **返回:**
  173. int,表示多进程/多线程下,主进程/主线程获取数据超时时,告警日志打印的时间间隔(秒)。
  174. .. automodule:: mindspore.dataset.config
  175. :members: