mindspore.dataset.config

The configuration module provides various functions to set and get the supported configuration parameters, and read a configuration file.

Common imported modules in corresponding API examples are as follows:

import mindspore.dataset as ds
mindspore.dataset.config.get_auto_num_workers()

Get the setting (turned on or off) automatic number of workers.

Returns

bool, whether auto number worker feature is turned on.

Examples

>>> # Get the global configuration of auto number worker feature.
>>> num_workers = ds.config.get_auto_num_workers()
mindspore.dataset.config.get_callback_timeout()

Get the default timeout for DSWaitedCallback. In case of a deadlock, the wait function will exit after the timeout period.

Returns

int, Timeout (in seconds) to be used to end the wait in DSWaitedCallback in case of a deadlock.

Examples

>>> # Get the global configuration of callback timeout.
>>> # If set_callback_timeout() is never called before, the default value(60) will be returned.
>>> callback_timeout = ds.config.get_callback_timeout()
mindspore.dataset.config.get_enable_shared_mem()

Get the default state of shared mem enabled variable.

Returns

bool, the state of shared mem enabled variable (default=True).

Examples

>>> # Get the flag of shared memory feature.
>>> shared_mem_flag = ds.config.get_enable_shared_mem()
mindspore.dataset.config.get_monitor_sampling_interval()

Get the global configuration of sampling interval of performance monitor.

Returns

int, interval (in milliseconds) for performance monitor sampling.

Examples

>>> # Get the global configuration of monitor sampling interval.
>>> # If set_monitor_sampling_interval() is never called before, the default value(1000) will be returned.
>>> sampling_interval = ds.config.get_monitor_sampling_interval()
mindspore.dataset.config.get_num_parallel_workers()

Get the global configuration of number of parallel workers. This is the DEFAULT num_parallel_workers value used for each operation, it is not related to AutoNumWorker feature.

Returns

int, number of parallel workers to be used as a default for each operation.

Examples

>>> # Get the global configuration of parallel workers.
>>> # If set_num_parallel_workers() is never called before, the default value(8) will be returned.
>>> num_parallel_workers = ds.config.get_num_parallel_workers()
mindspore.dataset.config.get_numa_enable()

Get the state of numa to indicate enabled/disabled. This is the DEFAULT numa enabled value used for the all process.

Returns

bool, the default state of numa enabled.

Examples

>>> # Get the global configuration of numa.
>>> numa_state = ds.config.get_numa_enable()
mindspore.dataset.config.get_prefetch_size()

Get the prefetch size as for number of rows.

Returns

int, total number of rows to be prefetched.

Examples

>>> # Get the global configuration of prefetch size.
>>> # If set_prefetch_size() is never called before, the default value(20) will be returned.
>>> prefetch_size = ds.config.get_prefetch_size()
mindspore.dataset.config.get_seed()

Get random number seed. If the seed has been set, then will return the set value, otherwise it will return the default seed value which equals to std::mt19937::default_seed.

Returns

int, random number seed.

Examples

>>> # Get the global configuration of seed.
>>> # If set_seed() is never called before, the default value(std::mt19937::default_seed) will be returned.
>>> seed = ds.config.get_seed()
mindspore.dataset.config.load(file)

Load the project configuration from the file format.

Parameters

file (str) – Path of the configuration file to be loaded.

Raises

RuntimeError – If file is invalid and parsing fails.

Examples

>>> # Set new default configuration according to values in the configuration file.
>>> # example config file:
>>> # {
>>> #     "logFilePath": "/tmp",
>>> #     "numParallelWorkers": 4,
>>> #     "seed": 5489,
>>> #     "monitorSamplingInterval": 30
>>> # }
>>> config_file = "/path/to/config/file"
>>> ds.config.load(config_file)
mindspore.dataset.config.set_auto_num_workers(enable)

Set num_parallel_workers for each op automatically(This feature is turned off by default).

If turned on, the num_parallel_workers in each op will be adjusted automatically, possibly overwriting the num_parallel_workers passed in by user or the default value (if user doesn’t pass anything) set by ds.config.set_num_parallel_workers().

For now, this function is only optimized for YoloV3 dataset with per_batch_map (running map in batch). This feature aims to provide a baseline for optimized num_workers assignment for each operation. Operation whose num_parallel_workers is adjusted to a new value will be logged.

Parameters

enable (bool) – Whether to enable auto num_workers feature or not.

Raises

TypeError – If enable is not of boolean type.

Examples

>>> # Enable auto_num_worker feature, this might override the num_parallel_workers passed in by user
>>> ds.config.set_auto_num_workers(True)
mindspore.dataset.config.set_callback_timeout(timeout)

Set the default timeout (in seconds) for DSWaitedCallback. In case of a deadlock, the wait function will exit after the timeout period.

Parameters

timeout (int) – Timeout (in seconds) to be used to end the wait in DSWaitedCallback in case of a deadlock.

Raises

ValueError – If timeout is invalid when timeout <= 0 or timeout > MAX_INT_32.

Examples

>>> # Set a new global configuration value for the timeout value.
>>> ds.config.set_callback_timeout(100)
mindspore.dataset.config.set_enable_shared_mem(enable)

Set the default state of shared memory flag. If shared_mem_enable is True, will use shared memory queues to pass data to processes that are created for operators that set python_multiprocessing=True.

Parameters

enable (bool) – Whether to use shared memory in operators when python_multiprocessing=True.

Raises

TypeError – If enable is not a boolean data type.

Examples

>>> # Enable shared memory feature to improve the performance of Python multiprocessing.
>>> ds.config.set_enable_shared_mem(True)
mindspore.dataset.config.set_monitor_sampling_interval(interval)

Set the default interval (in milliseconds) for monitor sampling.

Parameters

interval (int) – Interval (in milliseconds) to be used for performance monitor sampling.

Raises

ValueError – If interval is invalid when interval <= 0 or interval > MAX_INT_32.

Examples

>>> # Set a new global configuration value for the monitor sampling interval.
>>> ds.config.set_monitor_sampling_interval(100)
mindspore.dataset.config.set_num_parallel_workers(num)

Set a new global configuration default value for the number of parallel workers. This setting will affect the parallelism of all dataset operation.

Parameters

num (int) – Number of parallel workers to be used as a default for each operation.

Raises

ValueError – If num_parallel_workers is invalid when num <= 0 or num > MAX_INT_32.

Examples

>>> # Set a new global configuration value for the number of parallel workers.
>>> # Now parallel dataset operators will run with 8 workers.
>>> ds.config.set_num_parallel_workers(8)
mindspore.dataset.config.set_numa_enable(numa_enable)

Set the default state of numa enabled. If numa_enable is True, need to ensure numa library is installed.

Parameters

numa_enable (bool) – Whether to use numa bind feature.

Raises

TypeError – If numa_enable is not a boolean data type.

Examples

>>> # Set a new global configuration value for the state of numa enabled.
>>> # Now parallel dataset operators will run with numa bind function
>>> ds.config.set_numa_enable(True)
mindspore.dataset.config.set_prefetch_size(size)

Set the queue capacity of the thread in pipeline.

Parameters

size (int) – The length of the cache queue.

Raises

ValueError – If the queue capacity of the thread is invalid when size <= 0 or size > MAX_INT_32.

Note

Since total memory used for prefetch can grow very large with high number of workers, when the number of workers is greater than 4, the per worker prefetch size will be reduced. The actual prefetch size at runtime per-worker will be prefetchsize * (4 / num_parallel_workers).

Examples

>>> # Set a new global configuration value for the prefetch size.
>>> ds.config.set_prefetch_size(1000)
mindspore.dataset.config.set_seed(seed)

If the seed is set, the generated random number will be fixed, this helps to produce deterministic results.

Note

This set_seed function sets the seed in the Python random library and numpy.random library for deterministic Python augmentations using randomness. This set_seed function should be called with every iterator created to reset the random seed. In the pipeline, this does not guarantee deterministic results with num_parallel_workers > 1.

Parameters

seed (int) – Random number seed. It is used to generate deterministic random numbers.

Raises

ValueError – If seed is invalid when seed < 0 or seed > MAX_UINT_32.

Examples

>>> # Set a new global configuration value for the seed value.
>>> # Operations with randomness will use the seed value to generate random values.
>>> ds.config.set_seed(1000)
mindspore.dataset.config.set_sending_batches(batch_num)

Set the default sending batches when training with sink_mode=True in Ascend device.

Parameters

batch_num (int) – the total sending batches, when batch_num is set, it will wait unless sending batches increase, default is 0 which means will send all batches in dataset.

Raises

TypeError – If batch_num is not in int type.

Examples

>>> # Set a new global configuration value for the sending batches
>>> ds.config.set_sending_batches(10)