mindspore.dataset.config.set_debug_mode
- mindspore.dataset.config.set_debug_mode(debug_mode_flag: bool, debug_hook_list: list = None)
设置是否启动数据集管道的调试模式。当启用该模式时,数据集管道会使用单线程工作,所有数据集操作均以同步方式执行。
说明
当启用调试模式时,
如果随机种子没有被设置,则会将随机种子设置为1,以便在调试模式下执行数据集管道可以获得确定性的结果。
以下设置将不会生效:
auto_offload (强制设置为False)
enable_autotune (强制设置为False)
error_samples_mode (强制设置为ErrorSamplesMode.RETURN)
num_parallel_workers (强制设置为1)
数据集管道中 map 操作的 offload 参数将被忽略。
数据集管道中 GeneratorDataset 、 map 操作和 batch 操作的 python_multiprocessing 参数将被忽略。
数据集加载API中的 cache 参数将会被忽略。
- 参数:
debug_mode_flag (bool) - 是否开启数据集管道调试模式。该模式会强制数据集管道以单线程同步的方式运行。
debug_hook_list (list[
DebugHook
]) - 调试钩子列表,用于启用调试模式时插入到 map 操作中各个变换操作的前后。 默认值:None
,仅插入基础的信息打印钩子,用于打印各个变换操作输入/输出数据的形状/大小/类型信息。
- 异常:
TypeError - debug_mode_flag 不是bool类型。
TypeError - debug_hook_list 不是list类型。
TypeError - debug_hook_list 中的元素不是
DebugHook
类型。
样例:
>>> import mindspore.dataset as ds >>> import mindspore.dataset.vision as vision >>> import mindspore.dataset.debug as debug >>> >>> # 1. Enable dataset pipeline debug mode and use default debug hook. >>> # Print shape and type of input/output data of each transform op in map operator. >>> ds.config.set_debug_mode(True) >>> >>> # 2. Enable dataset pipeline debug mode and use pre-defined debug hook provided by MindData. >>> ds.config.set_debug_mode(True, debug_hook_list=[debug.PrintDataHook()]) >>> >>> # 3. Enable dataset pipeline debug mode and use user-defined debug hook. It must define a >>> # class inherited from DebugHook. >>> class CustomizedHook(debug.DebugHook): ... def __init__(self): ... super().__init__() ... ... def compute(self, *args): ... # Add your debugging code here. ... return args >>> >>> ds.config.set_debug_mode(True, debug_hook_list=[CustomizedHook()]) >>> >>> # 4. Enable dataset pipeline debug mode and use user-defined debug hook and insert by users manually. >>> ds.config.set_debug_mode(True) >>> dataset = ds.ImageFolderDataset(dataset_dir="/path/to/image_folder_dataset_directory") >>> >>> # The debug hook is added after Decode operation. >>> dataset = dataset.map([vision.Decode(), CustomizedHook(), vision.CenterCrop(100)])