2026.03.07学习笔记(数据流过程)

📅 发布时间:2026/7/3 5:33:58 👁️ 浏览次数:
2026.03.07学习笔记(数据流过程)
利用AI写代码明确输入是什么输出是什么中间要做哪些处理。你这个问题问得非常关键而且我需要纠正我前面的一点分析错误。我刚才把test.py解释成项目的测试流程其实这个 test.py 根本不是这个论文项目的核心代码。它只是一个单独的小实验脚本。真正完成海表温度缺失补全任务的是24_04_Train_.py model data mask 等模块。所以我们需要重新梳理一下。一、这个项目真正的任务是什么你的理解是完全正确的这个论文项目整体完成的是海表面温度SST, Sea Surface Temperature缺失图像补全任务英文通常叫SST reconstruction / SST inpainting也就是输入一张有缺失区域的海温图输出一张补全后的海温图二、真正的任务输出是什么真正的输出是补全后的海温图代码中的变量叫reconstructed_image在训练代码中re_week_ave_image, reconstructed_image, re_anomaly_image Frequency_Deal_model(...)其中变量含义reconstructed_image补全后的海温图核心结果real_image真实海温图标签corrupted_image缺失海温图输入三、最终可视化图在哪里生成在代码中真正生成结果图的地方是reconstr_visual.py在训练代码中调用visua_and_save(...)比如visua_and_save(Train, epoch, i, reconstructed_image, recons, ...)以及visua_and_save(Test, epoch, i, reconstructed_image, recons, ...)这一步会把图像保存成图片例如图片类型含义miss6.png缺失海温图week.png周期平均海温recons.png补全后的海温ground_recons.png真实海温四、整个论文项目真正的数据流我给你画一个完整数据流程图。① 原始数据来自data/*.h5例如South_Sea_Train_real.h5 South_Sea_Test_real.h5里面是96 × 8 × 64 × 64含义样本数 × 时间序列 × 图像高 × 图像宽② 制造缺失通过Mask_generate.py生成cloud mask square mask strip mask模拟现实中云遮挡 观测缺失 传感器缺失③ 构造输入模型输入corrupted_image week_ave_image代码corrupted_image batch_x[:,6] week_ave_image batch_y[:,-1]意思是输入含义corrupted_image当天缺失海温week_ave_image周期平均海温④ 神经网络补全模型Frequency_Deal_model输入corrupted_image week_ave_image输出reconstructed_image即补全后的海温图⑤ 计算损失代码里用了L1 L2 SSIM GAN目的让补全图尽可能接近真实海温。⑥ 生成可视化函数visua_and_save()保存图像例如recons.png ground_recons.png miss6.png五、论文真正要展示的结果图论文里展示的结果通常是输入缺失海温图corrupted_image输出补全海温图reconstructed_image对比真实海温图real_image所以论文中的图通常是Input (missing SST) ↓ Reconstructed SST ↓ Ground truth SST六、那 test.py 是干什么的结论test.py 与论文任务几乎没有关系它只是一个attention 可视化 demo用的是resnet50而不是论文模型。而且test.py 甚至没有调用 Frequency_Deal_model所以它不是论文实验代码很可能只是作者测试 attention 的脚本。七、真正的结果在哪真正实验结果是这些文件result_0.1_25 result_0.1_46 result_0.1_68 ...里面记录RMSE MSE MAE R2 SSIM PSNR八、最终一句话总结这个项目做的是海表温度缺失图像补全真正输出的是reconstructed_image补全后的海温图并通过visua_and_save()生成补全结果图而test.py 的注意力图不是论文最终结果。九、如果你愿意我可以再帮你做三件非常重要的事我可以帮你① 画出完整代码结构图非常清晰让你瞬间理解项目结构② 逐行讲解24_04_Train_.py这是整个项目核心代码③ 帮你推测论文模型结构非常关键包括Frequency_Deal_model Discriminator以及GAN frequency learning如果我继续讲你会彻底看懂这个论文项目。很好这一行代码其实是控制什么时候进行可视化并保存图像的。我们一步一步慢慢解释。你看到的是Visual_epoch 2以及代码中有这样的判断if epoch (Visual_epoch-1) and epoch (Visual_epoch*2) and epoch % Visual_epoch 0:或者elif epoch (Visual_epoch*2 -1) and epoch % (Visual_epoch) 0:我们先解释最简单的一行Visual_epoch 2它的意思是每隔 2 个 epoch 才进行一次可视化并保存图片。这里先解释两个基础概念。一、什么是 epoch在深度学习训练中epoch 完整训练一遍所有训练数据举个例子如果训练集有 100 张图一次 epoch 就是模型看完这 100 张图一次如果训练 50 个 epoch就是这 100 张图被模型学习 50 遍二、为什么不每个 epoch 都保存图保存图像是很慢的操作。如果每个 epoch 都保存图假设训练 1000 epoch那就会生成1000 张图非常多。所以代码作者设置Visual_epoch 2意思是每隔 2 个 epoch 保存一次图像例如epoch是否保存0否1否2保存3否4保存5否6保存三、代码中的判断逻辑这一句epoch % Visual_epoch 0意思是epoch 能被 2 整除也就是epoch 2 epoch 4 epoch 6 epoch 8这些 epoch 才会保存图像。四、保存的是什么图当满足条件时会执行visua_and_save(...)保存这些图图名含义miss6缺失海温图week周期平均海温recons补全后的海温ground_recons真实海温例如保存Train_recons_epoch2.png Train_recons_epoch4.png五、为什么前两个 epoch 保存更多图代码里还有这一段if i 2:意思是只保存前两个 batch 的图像因为一个 epoch 可能有很多 batch。作者只想保存batch 0 batch 1否则图会爆炸。六、总结这一行代码Visual_epoch 2控制的是每隔 2 个 epoch 才保存一次可视化结果图。这样可以减少保存图像数量观察训练过程变化不影响训练速度如果你愿意我可以继续帮你讲三个非常关键但很多人看不懂的地方1️⃣ 为什么输入是8×64×64 的 SST 数据2️⃣corrupted_image和week_ave_image为什么要一起输入3️⃣Frequency_Deal_model这个模型到底在干什么这是论文核心我可以把整个项目像拆机器一样一步步讲清楚。