BCE + Dice Combined Loss
SkillDev toolsCombines BCE-with-logits and soft Dice loss with configurable weights for binary and multilabel segmentation training.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the BCE + Dice Combined Loss skill
What this skill tells your AI
The instructions your AI receives, as published by wenmin-wu/ds-skills in skills/cv/bce-dice-combined-loss/SKILL.md and read by ahel’s review.
Overview
BCE loss optimizes per-pixel accuracy but struggles with class imbalance in segmentation (background dominates). Dice loss directly optimizes the Dice coefficient (F1 score) and handles imbalance well, but has noisy gradients. Combining both gives stable training from BCE while pushing toward high Dice overlap. This is the standard loss for medical image segmentation tasks.
Quick Start
import torch
import torch.nn as nn
def dice_loss(logits, targets, smooth=1.0):
probs = torch.sigmoid(logits)
iflat = probs.view(-1)
tflat = targets.view(-1)
intersection = (iflat * tflat).sum()
return 1 - (2. * intersection + smooth) / (iflat.sum() + tflat.sum() + smooth)
def bce_dice_loss(logits, targets, bce_weight=1.0, dice_weight=1.0):
bce = nn.functional.binary_cross_entropy_with_logits(logits, targets)
dice = dice_loss(logits, targets)
return (bce_weight * bce + dice_weight * dice) / (bce_weight + dice_weight)
# Usage
loss = bce_dice_loss(model_output, mask_target)
Workflow
- Compute BCE with logits loss (handles numerical stability internally)
- Compute soft Dice loss from sigmoid probabilities
- Combine with configurable weights (default 1:1)
- Backpropagate the combined loss
Key Decisions
- Weight ratio: 1:1 is standard; increase Dice weight (e.g., 1:2) if IoU/Dice metric matters more
- Smooth factor: 1.0 prevents division by zero; lower (0.01) for sharper gradients
- Multilabel: Apply per-channel, then average across classes
- vs Focal + Dice: Use Focal instead of BCE when many easy negatives dominate
- vs Lovasz: Lovasz loss directly optimizes IoU but is slower; combine with BCE similarly
References
Signals
- GitHub stars
- 60
- Forks
- 4
- Last commit
- Apr 2026
Advanced
- Catalog kind
- skill
- Gateway key
cv-bce-dice-combined-loss- Source
- github.com/wenmin-wu/ds-skills