Unet语义分割模型训练自定义过程中出现dice score趋近于0或者负值的解决方案(使用的仓库代码为——https://github.com/milesial/Pytorch-UNet)

文章讲述了在使用milesial/Pytorch-UNet库进行图像语义分割时,遇到Dice系数始终为负值的问题。经检查发现,降低初始学习率(从1e-5改为0.0001)可以解决这一问题。作者提示,在得到正常指标后,再恢复学习率可能会避免类似问题重现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用仓库代码如下的时候:milesial/Pytorch-UNet: PyTorch implementation of the U-Net for image semantic segmentation with high quality images (github.com)icon-default.png?t=N7T8https://github.com/milesial/Pytorch-UNet发现dice值无论和validation Dice始终为负值和趋近于(无限接近于0)0,具体情况如下图所示。

学习率为 learning_rate: float = 1e-5
对应的Val Dice值几乎无限趋近于0

修改学习率以后,各项Dice值正常了

参考——Dice coefficient no change during training,is always very close to 0 · Issue #173 · milesial/Pytorch-UNet (github.com)icon-default.png?t=N7T8https://github.com/milesial/Pytorch-UNet/issues/173

因此解决方案为:

将train.py代码中的内容

def train_model(
        model,
        device,
        epochs: int = 8,
        batch_size: int = 16,
        learning_rate: float = 1e-5,
        val_percent: float = 0.1,
        save_checkpoint: bool = True,
        img_scale: float = 0.5,
        amp: bool = False,
        weight_decay: float = 1e-8,
        momentum: float = 0.999,
        gradient_clipping: float = 1.0,
):

改为

def train_model(
        model,
        device,
        epochs: int = 8,
        batch_size: int = 16,
        learning_rate: float =  0.0001,
        val_percent: float = 0.1,
        save_checkpoint: bool = True,
        img_scale: float = 0.5,
        amp: bool = False,
        weight_decay: float = 1e-8,
        momentum: float = 0.999,
        gradient_clipping: float = 1.0,
):

 learning_rate: float = 1e-5 ——>修改为——> learning_rate: float =  0.0001

再次尝试运行就可以正常输出得到正常的各项Dice值了

tips:一旦成功得到各项指标以后,再把学习率改回去,可能就无法复现之前的“趋近于0”的现象了。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光芒再现dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值