110 lines
4.6 KiB
Python
110 lines
4.6 KiB
Python
"""
|
||
PhiSAGE 项目全局配置文件
|
||
集中管理所有可配置的参数,避免循环导入问题
|
||
"""
|
||
|
||
# ==========================================
|
||
# 全局迭代次数配置(统一管理所有相关文件的迭代次数)
|
||
# ==========================================
|
||
N_ITER = 5 # 全局迭代次数,修改此值将影响所有相关文件
|
||
|
||
# ==========================================
|
||
# 全局模型保存路径配置
|
||
# ==========================================
|
||
SAVE_DIR = "/public/home/zzx/gnn/PhiSAGE/PhiSAGE-test/saved_models/A-0.6" # 模型保存目录
|
||
OUTPUT_DIR = "/public/home/zzx/gnn/PhiSAGE/PhiSAGE-test/training_outputs/A-0.6" # 训练曲线输出目录
|
||
# ==========================================
|
||
# 数据集配置
|
||
# ==========================================
|
||
# 数据集选择:设置为 'A' 或 'B'
|
||
# - 'A': 读取 data/A-4 目录(包含A-TainDataset等4个子目录),使用 scaA 命名格式
|
||
# - 'B': 读取 data/B-4 目录(包含B-TainDataset等4个子目录),使用 scaB 命名格式
|
||
# - 'C': 读取 data/C-4 目录(包含C-TainDataset等4个子目录),使用 scaC 命名格式
|
||
# 使用方法:
|
||
# 1. 将数据放在对应的目录结构中
|
||
# 2. 修改 DATASET_TYPE 的值
|
||
# 3. 程序会自动扫描所有子目录中的数据
|
||
#
|
||
DATASET_TYPE = 'A' # 可选: 'A' 或 'B' 或 'C'
|
||
DATA_ROOT_PATH = "data/A-1"
|
||
|
||
# 根据选择动态设置相关参数(由 build_graph.py 使用)
|
||
if DATASET_TYPE == 'A':
|
||
SCA_PREFIX = 'scaA'
|
||
DATASET_DIRS_PATTERN = 'A-TainDataset*'
|
||
elif DATASET_TYPE == 'B':
|
||
SCA_PREFIX = 'scaB'
|
||
DATASET_DIRS_PATTERN = 'B-TainDataset*'
|
||
elif DATASET_TYPE == 'C':
|
||
SCA_PREFIX = 'scaC'
|
||
DATASET_DIRS_PATTERN = 'C-TainDataset*'
|
||
else:
|
||
raise ValueError("DATASET_TYPE 必须设置为 'A' 或 'B' 或 'C'")
|
||
# ==========================================
|
||
# ==========================================
|
||
# 训练启动器配置 (run.py 使用)
|
||
# ==========================================
|
||
# 默认 GPU 配置
|
||
DEFAULT_TARGET_GPUS = "4,5" # 默认使用的 GPU 列表
|
||
|
||
# 训练模式配置
|
||
DEFAULT_TRAIN_MODE = "ddp" # 默认训练模式: "single", "multi", "ddp"
|
||
|
||
# 单卡训练配置
|
||
DEFAULT_SINGLE_GPU_ID = 0 # 默认单卡 GPU ID
|
||
|
||
# ==========================================
|
||
# DDP分布式训练配置
|
||
# ==========================================
|
||
# DDP通信端口配置
|
||
MASTER_PORT = "20870" # DDP主进程通信端口
|
||
|
||
# ==========================================
|
||
# 网络维度配置
|
||
# ==========================================
|
||
# 网络架构配置:支持多种维度设置方式
|
||
#
|
||
# 方式1:使用base_dim自动计算(推荐)
|
||
# NETWORK_BASE_DIM = 56 # 基础维度,会自动生成 [56, 112, 192]
|
||
#
|
||
# 方式2:自定义维度配置
|
||
# NETWORK_CUSTOM_DIMS = [56, 112, 192] # 手动指定每层维度
|
||
#
|
||
# 方式3:使用预设配置
|
||
# NETWORK_CONFIG = "default" # 可选: "small", "medium", "large", "xlarge"
|
||
|
||
# 当前使用的配置方式
|
||
NETWORK_USE_CUSTOM_DIMS = True # True=使用自定义维度,False=使用base_dim自动计算
|
||
NETWORK_BASE_DIM = 64 # 基础维度(当不使用自定义维度时)
|
||
NETWORK_CUSTOM_DIMS = [64, 128, 256] # 自定义维度配置
|
||
|
||
# 池化配置
|
||
NETWORK_POOL_RATIOS = [0.8, 0.6] # 池化比例
|
||
|
||
# ==========================================
|
||
# Loss函数配置
|
||
# ==========================================
|
||
# LOSS_TYPE: 选择使用的损失函数类型
|
||
# - "mse": 传统的MSE损失 (||pred - true||^2)
|
||
# - "phi": Phi损失 (||A*x - b||^2) - 直接计算物理残差
|
||
# - "asinh": Asinh损失 sqrt(asinh(norm(x-x_ref)^2/N)) - 平滑的损失函数
|
||
# - "hybrid": 混合损失 - 前100epoch纯MSE,后续MSE + λ*phi (λ从0.001开始每50epoch×10倍,至0.1)
|
||
LOSS_TYPE = "hybrid" # 可选: "mse", "phi", "asinh" 或 "hybrid"
|
||
|
||
# ==========================================
|
||
# 预训练模型加载配置(迁移学习)
|
||
# ==========================================
|
||
# LOAD_PRETRAINED_MODEL: 是否加载预训练模型权重(仅模型权重,不加载优化器等状态)
|
||
# - True: 从 PRETRAINED_MODEL_DIR 目录加载模型权重,优化器等重新初始化
|
||
# - False: 不加载预训练模型,从头开始训练
|
||
LOAD_PRETRAINED_MODEL = False # 是否加载预训练模型权重
|
||
|
||
# PRETRAINED_MODEL_DIR: 预训练模型目录
|
||
# 如果 LOAD_PRETRAINED_MODEL=True,将从该目录加载模型权重文件(real_iter_*.pth 和 imag_iter_*.pth)
|
||
# None表示使用SAVE_DIR,也可以指定其他目录
|
||
PRETRAINED_MODEL_DIR = None # None表示使用SAVE_DIR,也可以指定其他目录
|
||
|
||
# ==========================================
|
||
# 其他全局配置参数
|
||
# ==========================================
|
||
# 可以在这里添加其他需要全局共享的配置参数 |