mindspore.dataset.config.set_enable_autotune

mindspore.dataset.config.set_enable_autotune(enable, filepath_prefix=None)

设置是否开启自动数据加速。默认情况下不开启自动数据加速。

自动数据加速用于在训练过程中根据环境资源的负载,自动调整数据处理管道全局配置,提高数据处理的速度。

可以通过设置 json_filepath 将优化后的全局配置保存为JSON文件,以便后续复用。

参数:
  • enable (bool) - 是否开启自动数据加速。

  • filepath_prefix (str,可选) - 优化后的全局配置的保存路径+文件前缀。多卡环境时,设备ID号与JSON扩展名会自动添加到 filepath_prefix 参数后面作为完整的文件路径,单卡默认设备ID号为0。例如,设置 filepath_prefix=”/path/to/some/dir/prefixname” ,设备ID为1的训练进程 生成的调优文件将被命名为 /path/to/some/dir/prefixname_1.json 。默认值:None,表示不保存配置文件,但可以通过INFO日志查看调优配置。

异常:
  • TypeError - 当 enable 的类型不为bool。

  • TypeError - 当 json_filepath 的类型不为str。

  • RuntimeError - 当 json_filepath 字符长度为0。

  • RuntimeError - 当 json_filepath 为目录。

  • RuntimeError - 当 json_filepath 路径不存在。

  • RuntimeError - 当 json_filepath 没有写入权限。

说明

  • enable 为 False 时,json_filepath 值将会被忽略。

  • 生成的JSON文件可以通过 mindspore.dataset.deserialize 进行加载,得到调优后的数据处理管道。

生成的JSON文件内容示例如下,”remark”字段将给出结论表明数据处理管道是否进行了调整,”summary”字段将展示数据处理管道的调优配置。 用户可以根据调优结果修改代码脚本。

{
    "remark": "The following file has been auto-generated by the Dataset AutoTune.",
    "summary": [
        "CifarOp(ID:5)       (num_parallel_workers: 2, prefetch_size:64)",
        "MapOp(ID:4)         (num_parallel_workers: 2, prefetch_size:64)",
        "MapOp(ID:3)         (num_parallel_workers: 2, prefetch_size:64)",
        "BatchOp(ID:2)       (num_parallel_workers: 8, prefetch_size:64)"
    ],
    "tree": {
        ...
    }
}

样例:

>>> # enable AutoTune and save optimized data pipeline configuration
>>> ds.config.set_enable_autotune(True, "/path/to/autotune_out.json")
>>>
>>> # enable AutoTune
>>> ds.config.set_enable_autotune(True)