TrafficWheel/model/README.md

110 lines
2.1 KiB
Markdown

# 模型注册说明
## 概述
本项目使用基于配置文件的模型注册机制,每个模型目录下的 `model_config.json` 文件用于注册该目录下的模型。
## model_config.json 格式
### 基本格式
每个 `model_config.json` 文件是一个 JSON 数组,包含一个或多个模型配置对象:
```json
[
{
"name": "模型名称",
"module": "模型模块路径",
"entry": "模型入口点"
}
]
```
### 字段说明
- **name**: 模型的唯一标识符,用于在配置文件中选择模型
- **module**: 模型所在的模块路径,使用 Python 导入格式
- **entry**: 模型的入口点,可以是类名或函数名
### 示例
#### 1. 单个模型
```json
[
{
"name": "DDGCRN",
"module": "model.DDGCRN.DDGCRN",
"entry": "DDGCRN"
}
]
```
#### 2. 多个模型(同一目录下的不同版本)
```json
[
{
"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. 函数模型
```json
[
{
"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` 字段指定要使用的模型名称:
```json
{
"basic": {
"model": "ASTRA"
},
"model": {
// 模型特定配置
}
}
```
## 冲突检测
系统会自动检测模型名冲突,如有冲突会抛出 `AssertionError` 并显示冲突信息。