-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.py
More file actions
84 lines (70 loc) · 3.52 KB
/
config.py
File metadata and controls
84 lines (70 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
"""
全局配置常量
将 driver.py 顶部的声明集中到此文件,便于统一管理与复用。
"""
# 计时开关 - 设置为True启用计时桩
timing = True
# === 数据集目录 ===
TRAIN_SET_SRC_DIR = 'Train_Src'
TRAIN_SET_REF_DIR = 'Train_Ref'
EVAL_SET_SRC_DIR = 'Eval_Src' # 若不存在且允许回退,将使用 TEST_* 目录
EVAL_SET_REF_DIR = 'Eval_Ref'
TEST_SET_SRC_DIR = 'Test_Src'
TEST_SET_REF_DIR = 'Test_Ref'
ALLOW_EVAL_FALLBACK_TO_TEST = True
# 日志
loss_log = 'loss' # 只包含文件名,扩展名默认为.csv
# === 样本相关参数 ===
train_canvas_w = 853 # 训练样本规范宽度
train_canvas_h = 480 # 训练样本规范高度
train_stack_count = 4 # 每次抽选的样本对数量(纵向拼接)
# === D2 损失函数参数 ===
d2_weight = 0.33 # D2 损失的权重(与 MSE 权重=1.0 配合使用)
d2_bins = 256 # 直方图分箱数量
d2_value_min = 0.0 # 直方图值域最小值
d2_value_max = 1.0 # 直方图值域最大值
# === 训练迭代设置 ===
d2_enable = False # 是否启用 D_2(直方图差异)损失计算
mse_enable = True # 是否启用 MSE 损失计算
log_mse = True # 是否在日志中记录 MSE(可与 mse_enable 独立;若 True 但 mse_enable=False,将额外计算一次)
log_d2 = True # 是否在日志中记录 D2 (可与 d2_enable 独立;若 True 但 d2_enable=False,将额外计算一次)
eval_every = 5000 # 统一的统计/输出/Checkpoint图片/重新抽样周期
resample_divisor = 16 # 重新抽样周期 = eval_every / resample_divisor
init_mutate_pts = 8 # 初始变异点数
max_mutate_pts = 24 # 变异点数上限
target_acpt_rate = 0.4 # 目标接受率
mutate_temp_ratio = 0.6 # mutate()步长与温度的比例
# === 四阶段退火温度计划 ===
# 阶段1:较大的探索,但在末尾稳定收敛(灰度/1D LUT)
phase1_iter = 20000 # 阶段1的迭代次数
phase1_T_init = 0.3
phase1_T_final = 8e-3 # 阶段1尾部收敛到极低温,保证稳定
phase1_step_scale = 0.7 # 阶段1的步长缩放因子
phase1_stabilize_last = 1000 # 阶段1最后多少步进入“稳定窗口”(强制不切换样本,T=0)
phase1_smoothen_on_enter = False
phase1_smoothen_box = 3
# 阶段2:3×1D LUT(按RGB轴独立变异整平面)
phase2_iter = 20000 # 阶段2的迭代次数
phase2_T_init = 0.2
phase2_T_final = 1e-4
phase2_step_scale = 0.1
phase2_planes_per_axis = 1 # 每个轴每步变异的平面数量
phase2_smoothen_on_enter = False
phase2_smoothen_box = 3
# 阶段3:3D LUT 微调,从较小温度开始到极低
phase3_iter = 120000 # 阶段3的迭代次数
phase3_T_init = 0.60
phase3_T_final = 8e-4
# phase3_T_final = 3e-5
phase3_step_scale = 0.5 # 第三阶段的步长缩放因子(更小以便精细微调)
phase3_smoothen_on_enter = True
phase3_smoothen_box = 2
# 阶段4:更低温度的单点微调(步长更小,变异点固定为1)
phase4_iter = 80000 # 阶段4的迭代次数
phase4_T_init = 1e-2
phase4_T_final = 1e-4
phase4_step_scale = 0.3 # 更小步长,进行细粒度单点搜索
phase4_smoothen_on_enter = False
phase4_smoothen_box = 2
# —— 阶段切换平滑设置 ——
# 每个阶段进入时,是否对 LUT 执行 smoothen(),以及使用的 box 大小