如何向字典中的_args_键传入多个值?(基于YAML配置)
为_args_传入多路径的实现方法
代码直接修改方式
原代码中_args_本身就是列表类型,直接在列表内追加多个路径字符串即可:
'validate': { 'batch_size': 24, 'dataset': { '_target_': 'basic_classifier.dataset.FolderBasedClassification', 'folder': { '_args_': [ 'training/datasets/christmas2020/validation/', 'training/datasets/another_dataset/validation/', 'training/datasets/third_dataset/validation/' ], '_target_': 'pathlib.Path' }, 'input_size': '${input_size}' } }
通过config.yaml传递的写法
在yaml配置文件中,对应节点采用列表格式定义多路径:
validate: batch_size: 24 dataset: _target_: basic_classifier.dataset.FolderBasedClassification folder: _args_: - training/datasets/christmas2020/validation/ - training/datasets/another_dataset/validation/ - training/datasets/third_dataset/validation/ _target_: pathlib.Path input_size: ${input_size}
注意事项
- 确认
basic_classifier.dataset.FolderBasedClassification类的folder参数支持接收多个pathlib.Path实例,或者你的配置框架(如Hydra)能自动将多路径列表转换为该类可处理的格式。 - 路径需保证相对项目根目录的正确性,或直接使用绝对路径避免定位错误。
内容的提问来源于stack exchange,提问作者gyaha
相关产品推荐
相关产品推荐

