ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Invertible-Image-Rescaling 训练全解:前向拟合、CE 正则与反向重建三大损失函数如何调参

Invertible-Image-Rescaling 训练全解:前向拟合、CE 正则与反向重建三大损失函数如何调参 Invertible-Image-Rescaling 训练全解前向拟合、CE 正则与反向重建三大损失函数如何调参【免费下载链接】Invertible-Image-Rescaling[ECCV 2020, IJCV 2022] Invertible Image Rescaling项目地址: https://gitcode.com/gh_mirrors/in/Invertible-Image-Rescaling在图像分辨率处理领域Invertible-Image-RescalingIRN可逆图像重缩放用单个网络同时完成「降采样」与「超分辨率放大」前向把高清图压成低清图反向再把低清图重建回高清ECCV 2020 OralIJCV 2022 扩展版。训练 IRN 的关键就是三大损失函数的配合前向拟合损失、CE 正则损失、反向重建损失。本文面向新手讲清三者如何分工、权重配置在哪里、以及不同缩放倍率下怎么调参。一、核心思想一个网络为什么能双向工作传统方案需要两个独立模型一个降采样网络 一个超分网络。IRN 的做法是用可逆块Invertible Block堆叠每个可逆块把特征图拆成两半通过子网络 F、G 和逐通道缩放因子耦合数学上可解析求逆所以同一套参数既能前向降采样、也能反向放大降采样阶段使用Haar 下采样2 的幂倍率x3 这种非 2 幂倍率则换成可学习卷积下采样ConvDownsampling参数极少x2 仅 1.66Mx4 为 4.35M却显著超过 EDSR40M等重型网络。一个关键细节前向降采样时网络除了输出 3 通道的低清图 LR还额外输出scale²−1通道的“编码”通道z反向放大时把高斯随机噪声与 LR 拼接后送入网络重建高清图。训练的三个损失函数正是围绕这条前向/反向链路设计的。二、三大损失函数的分工 损失的计算逻辑集中在codes/models/IRN_model.py的optimize_parameters中总损失为三项之和Total λ_fit_forw × L_forw_fit λ_rec_back × L_back_rec λ_ce_forw × L_forw_ce1️⃣ 前向拟合损失l_forw_fit作用让前向输出的低清图逼近参考低清图如双三次降采样结果保证「正向压缩」的保真度配置项pixel_criterion_forw默认l2微调时改l1。2️⃣ CE 正则损失l_forw_ce作用把编码通道z 的数值平方和压向 0。这意味着前向路径趋于确定性的下采样器重建的不确定性全部由反向输入的高斯噪声承担——这是 IRN「可逆 采样」机制能成立的核心正则配置项lambda_ce_forw官方各倍率下均为1一般无需调整。3️⃣ 反向重建损失l_back_rec作用把「量化后的 LR 高斯噪声」经反向传播重建高清图与 GT 比较保证「反向放大」的质量配置项pixel_criterion_back官方固定用l1对噪声更鲁棒、细节更锐利。 训练中还有一步容易被忽略送入反向重建的 LR 会先经过8-bit 量化codes/models/modules/Quantization.py模拟真实存储/传输的取整误差让模型对量化更鲁棒。三、官方权重速查表λ_fit_forw ≈ scale² 的黄金规律 ⚡三个损失中最需要调的是λ_fit_forw前向拟合权重。对比官方各倍率配置文件codes/options/train/train_IRN_x*.yml可以发现清晰规律倍率λ_fit_forwλ_rec_backλ_ce_forw前向损失反向损失x2411l2l1x3911l2l1x41611l2l1x86411l2l1彩色化311l2l1为什么是 scale 的平方因为损失按整张图求和前向损失只覆盖N/scale²个低清像素反向损失覆盖 N 个高清像素。要让两项量级相当前向项恰好需要乘以scale²补偿。自己改倍率训练时照这个规律给权重即可这是最重要的调参口诀。四、其余必须了解的调参项以下默认值来自官方 x4 配置新手可直接沿用学习率lr_G 2e-4Adamβ10.9、β20.999训练 50 万 iter学习率调度MultiStepLR每 10 万 iter 衰减lr_gamma 0.5即 2e-4 → 1e-4 → 5e-5 …稳定性三件套weight_decay_G 1e-5、gradient_clipping 10、batch_size 16GT 裁剪块 144×144验证/存档每 5000 iter 验证一次val_freq。微调Finetune模式专用改法官方提供了train_IRN_x2_finetune.ymlDIV2K 预训练权重 Kodak 微调其改动值得记住lr_G降到1e-5niter缩到 10 万前向损失由 l2 改为l1微调期更重视边缘细节新增add_noise_on_y: True、y_noise_prob: 0.5、y_noise_scale: 0.01以 50% 概率给 LR 加一点高斯噪声提升重建的鲁棒性。五、验证指标与常见问题排查 训练完成后用metrics/calculate_PSNR_SSIM.py对输出与 GT 计算 PSNR/SSIM测试入口为test.py -opt options/test/test_IRN_x2.yml测试时 z 用高斯采样官方报告 5 次采样平均波动 0.02 dB。症状可能原因调整建议前向 LR 模糊、PSNR 偏低前向拟合权重不足按 scale² 规律调大lambda_fit_forw反向重建出现随机纹理抖动z 通道没收敛保持lambda_ce_forw 1检查 CE 曲线是否单调下降放大结果偏色/灰蒙前向 l2 权重过大抑制细节微调阶段把pixel_criterion_forw换 l1训练后期 NaN / 梯度爆炸学习率偏高提前触发lr_steps衰减确认gradient_clipping生效六、上手命令一览从头训练python train.py -opt options/train/train_IRN_x4.ymlx2/x3/x8 同理换配置文件微调python train.py -opt options/train/train_IRN_x2_finetune.yml测试python test.py -opt options/test/test_IRN_x4.yml彩色化扩展python train_IRN-Color.py -opt options/train/train_IRN_color.yml压缩组合扩展python train_IRN-Compression.py -opt options/train/train_IRN-Compression_x2_q90.yml额外引入 RRDB 网络去 JPEG 伪影一句话总结调参只需抓住一条主线——lambda_fit_forw按 scale² 取值、CE 权重保持 1、反向重建用 l1再配合 2e-4 起步的 MultiStepLR 学习率就能稳定复现官方的可逆图像重缩放效果。【免费下载链接】Invertible-Image-Rescaling[ECCV 2020, IJCV 2022] Invertible Image Rescaling项目地址: https://gitcode.com/gh_mirrors/in/Invertible-Image-Rescaling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表