Schwertlilien
As a recoder: notes and ideas.

Thu Nov 13 2025 00:00:00 GMT+0800 (中國標準時間)

代码部分

MultiModalDataset.py

这是一个多模态数据集类,主要负责数据加载和预处理,包含以下核心组件:

主要类:

  • HSIProcessor :高光谱数据处理器

    • 处理npy格式的高光谱数据文件
    • 支持通道数统一(通过平均池化、重复、截断或填充)
    • 调整空间尺寸(默认256×256)
    • 可选的数据归一化处理
  • RGBProcessor :RGB图像处理器

    • 处理RGB图像文件
    • 调整尺寸并转换为张量
    • 对缺失图像返回默认零张量
  • LabelProcessor :标签处理器

    • 对标签进行对数变换(默认开启)
    • 支持使用StandardScaler进行标准化
    • 提供逆变换功能,将预测结果转回原始尺度
  • Validation Loss: 0.3464 MAE: 123048.0000 RMSE: 251103.0469 R²: 0.4773
    Epoch 178/200
    Train Loss: 0.5165 MAE: 251015.7500 RMSE: 933500.5000 R²: 0.0277
    Validation Loss: 0.2887 MAE: 77823.0547 RMSE: 165240.5000 R²: 0.7736
    Epoch 179/200
    Train Loss: 0.5380 MAE: 254873.3438 RMSE: 920897.5625 R²: 0.0537
    Validation Loss: 0.5153 MAE: 250036.1875 RMSE: 525814.1250 R²: -1.2921
    Epoch 180/200
    Train Loss: 0.5162 MAE: 267688.5312 RMSE: 977263.5625 R²: -0.0656
    Validation Loss: 0.2729 MAE: 88708.2031 RMSE: 183497.7031 R²: 0.7209

-inf — 1

[-inf ,-1]

Epoch 181/200
Train Loss: 0.4926 MAE: 228768.2031 RMSE: 898883.0625 R²: 0.0984
Validation Loss: 0.6303 MAE: 160930.1406 RMSE: 321643.3750 R²: 0.1423
Epoch 182/200
Train Loss: 0.7472 MAE: 372025.8438 RMSE: 1098051.3750 R²: -0.3453
Validation Loss: 0.4184 MAE: 159994.5312 RMSE: 322837.7188 R²: 0.1360
Epoch 183/200
Train Loss: 0.5582 MAE: 261034.2812 RMSE: 962091.4375 R²: -0.0328
Validation Loss: 0.7292 MAE: 430913.0312 RMSE: 959121.6250 R²: -6.6263
Epoch 184/200
Train Loss: 0.5356 MAE: 256986.6406 RMSE: 941638.5625 R²: 0.0106
Validation Loss: 0.4641 MAE: 224205.6875 RMSE: 474270.5000 R²: -0.8647
Epoch 185/200
Train Loss: 0.5984 MAE: 295664.3125 RMSE: 966598.2500 R²: -0.0425
Validation Loss: 0.3660 MAE: 110208.8906 RMSE: 226541.0469 R²: 0.5745
Epoch 186/200
Train Loss: 0.7722 MAE: 381546.9688 RMSE: 1150542.6250 R²: -0.4770
Validation Loss: 0.3066 MAE: 110757.3984 RMSE: 226244.0625 R²: 0.5757
Epoch 187/200
Train Loss: 0.4389 MAE: 198513.5781 RMSE: 873803.0000 R²: 0.1480
Validation Loss: 0.2747 MAE: 88846.9453 RMSE: 183255.9688 R²: 0.7216
Epoch 188/200
Train Loss: 0.4491 MAE: 199502.5156 RMSE: 880009.0625 R²: 0.1359
Validation Loss: 0.2932 MAE: 80564.2969 RMSE: 171644.2969 R²: 0.7558
Epoch 189/200
Train Loss: 0.5977 MAE: 284538.3750 RMSE: 1028627.3750 R²: -0.1806
Validation Loss: 0.8808 MAE: 571123.5000 RMSE: 1306598.8750 R²: -13.1531
Epoch 190/200
Train Loss: 0.5413 MAE: 280375.3125 RMSE: 974062.8125 R²: -0.0587
Validation Loss: 0.2998 MAE: 107401.5625 RMSE: 219184.6250 R²: 0.6017
Epoch 196/200
Train Loss: 0.5344 MAE: 264654.0000 RMSE: 926124.6250 R²: 0.0430
Validation Loss: 0.2813 MAE: 91278.9062 RMSE: 187786.8906 R²: 0.7077

seaborn res1:就是普通没有加皮归一化的可视化100epoch,

原始结果:Val - Loss: 0.1552, MSE: 0.3646, MAE: 0.4279, R²: 0.9463
Saved best model with val_loss: 0.1552

加入原始值后(但感觉没加成功)Original scale - MAE: 0.4062, RMSE: 0.6424, R²: 0.9392
Val - Loss: 0.1624, MSE: 0.4127, MAE: 0.4062, R²: 0.9392

再加入早停:Original scale - MAE: 0.4376, RMSE: 0.6691, R²: 0.9340

Final Test Results:
Transformed scale - MSE: 0.4477, MAE: 0.4376, R²: 0.9340
Original scale - MSE: 0.4477, MAE: 0.4376, RMSE: 0.6691, R²: 0.9340

UNet++

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
✅ 评估完成!结果已保存到 evaluation_results/ 目录
(base) schwertlilien@SchwertliliendeMacBook-Pro test %
python evaluate_unet_fixed.py
✅ Stratified sampling available
🎯 修复版UNet++模型评估
============================================================
🔄 重新创建训练环境...
Found 786 valid samples
Fluorescence quantile normalization fitted:
1.0% quantile: 3062.13
99.0% quantile: 125457.91

Data preprocessing completed:
Toxin values - Min: 2123.58, Max: 15012381.51
Toxin values - Mean: 387255.93, Std: 1024443.36
Original fluo - Min: 3039.09, Max: 138955.24
Processed fluo - Min: 0.000, Max: 1.000
Dataset initialized with 786 samples
📊 数据集大小: 786 样本
Stratified sampling setup:
Low stratum (<= 4908.52): 209 samples
Mid stratum (4908.52 - 395973.25): 210 samples
High stratum (> 395973.25): 209 samples
Samples per stratum per batch: 4
Total batches per epoch: 52
Created stratified dataloaders:
Train batches: 52 (stratified)
Val batches: 14 (random)
Train samples: 628
Val samples: 158
✅ 数据加载器创建成功 - 训练集: 52 批次, 验证集: 14 批次
📏 重新创建target_scaler...
训练集统计 - Mean: 195042.59, Std: 357719.95

📦 加载模型: /Users/schwertlilien/Downloads/test/best_unetplus_stratified_stratified.pth
🔧 使用设备: mps
✅ 模型加载成功 - 训练epoch: 58, 训练时验证R²: 0.6815

🎯 使用正确的target_scaler进行评估...
批次 1/14: 预测 -8433-683708, 真实 2140-901964
批次 6/14: 预测 -2485-1483689, 真实 2125-1393777
批次 11/14: 预测 3495-857461, 真实 2283-869085

📊 计算评估指标...

============================================================
📋 修复后的评估结果:
----------------------------------------
R² : 0.6825
RMSE : 291919.1752
MAE : 79573.9531
MAPE : 84.41%
Median_RE : 44.26%
STD_Error : 290323.56%
Correlation : 0.8297
MSE : 85216804864.0000

📊 对比结果:
训练时验证R²: 0.6815
修复后评估R²: 0.6825
差异: 0.0010
搜索
匹配结果数:
未搜索到匹配的文章。