TrafficWheel/model/README.md

2.1 KiB

模型注册说明

概述

本项目使用基于配置文件的模型注册机制,每个模型目录下的 model_config.json 文件用于注册该目录下的模型。

model_config.json 格式

基本格式

每个 model_config.json 文件是一个 JSON 数组,包含一个或多个模型配置对象:

[
  {
    "name": "模型名称",
    "module": "模型模块路径",
    "entry": "模型入口点"
  }
]

字段说明

  • name: 模型的唯一标识符,用于在配置文件中选择模型
  • module: 模型所在的模块路径,使用 Python 导入格式
  • entry: 模型的入口点,可以是类名或函数名

示例

1. 单个模型

[
  {
    "name": "DDGCRN",
    "module": "model.DDGCRN.DDGCRN",
    "entry": "DDGCRN"
  }
]

2. 多个模型(同一目录下的不同版本)

[
  {
    "name": "ASTRA",
    "module": "model.ASTRA.astra",
    "entry": "ASTRA"
  },
  {
    "name": "ASTRA_v2",
    "module": "model.ASTRA.astrav2",
    "entry": "ASTRA"
  },
  {
    "name": "ASTRA_v3",
    "module": "model.ASTRA.astrav3",
    "entry": "ASTRA"
  }
]

3. 函数模型

[
  {
    "name": "STGNCDE",
    "module": "model.STGNCDE.Make_model",
    "entry": "make_model"
  }
]

添加新模型

  1. model 目录下创建模型目录
  2. 在该目录下实现模型代码
  3. 创建 model_config.json 文件,配置模型信息
  4. 在配置文件中使用模型名称选择模型

注意事项

  1. 模型名称必须唯一,不允许重复
  2. 模块路径必须是正确的 Python 导入路径
  3. 入口点必须是模块中存在的类或函数
  4. 配置文件必须是有效的 JSON 格式
  5. 每个模型目录下只能有一个 model_config.json 文件

模型选择

在配置文件中,通过 basic.model 字段指定要使用的模型名称:

{
  "basic": {
    "model": "ASTRA"
  },
  "model": {
    // 模型特定配置
  }
}

冲突检测

系统会自动检测模型名冲突,如有冲突会抛出 AssertionError 并显示冲突信息。