1 参数优先级
高优先级的参数会覆盖低优先级的同名参数
Libcity中的优先级顺序维:
命令行参数(命令行python run_model.py时导入的)
>
用户定义配置文件(命令行python run_model.py时由config_file导入的)
>
模型所在模块默认参数
>
数据模块、执行模块、测评模块的默认参数
1.1 举例
以GRU模型为例
1.1.1 最低一级的默认参数
- 打开
libcity/config/task_config.json
- 该文件记录了不同的任务支持的模型和数据集
- 同时该文件记录了各个模型在LibCity中使用的数据集类、执行器、评测器
- 可以看到GRU采用的数据集类是
TrafficStatePointDataset
、执行器是TrafficStateExecutor
、评测器是TrafficStateEvaluato
——>libcity/config/data/TrafficStatePointDataset.json
中查看数据模块的默认参数- ——>libcity/config/executor/TrafficStateExecutor.json中查看执行模块的默认参数
libcity/config/evaluator/TrafficStateEvaluator.json
中查看评测模块的默认参数
- 可以看到GRU采用的数据集类是
- 该文件记录了不同的任务支持的模型和数据集
1.1.2 次低一级的默认参数
- 模型模块的默认参数则位于
libcity/config/model/traffic_state_pred/RNN.json
中,它的优先级要高于其他三个模块的默认参数- 以
scalar
参数为例- 它在模型模块默认参数配置文件中的值是
standard
- 在数据模块默认参数配置文件中的值是
none
——>
则scalar
参数在LibCity
中最终的默认值是standard
- 它在模型模块默认参数配置文件中的值是
- 以
1.1.3 第二级的优先级:用户自定义的参数配置文件
在用命令行执行时以--config_file
参数的形式传递进去
1.1.4 最高的优先级:命令行参数
2 默认配置
- 数据模块、执行器模块、评估模块和模型所在模块的配置分别位于:
-
/libcity/config/data
-
/libcity/config/executor
-
/libcity/config/evaluator
-
/libcity/config/model
-
3 数据集配置文件
- 在数据集配置文件中存储了一些辅助信息,其存储路径为
/raw_data/数据集名字/config.json
以METRLA 为例
4 任务配置文件
- 用来记录各任务支持的模型与数据集列表,以及其下各模型默认的数据模块、执行器模块和评估模块类名
- 存储路径为
/libcity/config/task_config.json
增加新模块时,需要修改libcity/config/task_config.json
参考内容:运行LibCity中已复现的模型 — Bigscity-LibCity 文档 (bigscity-libcity-docs.readthedocs.io)