110 lines
2.1 KiB
Markdown
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` 并显示冲突信息。
|