Skip to content

Focal Loss returning 0.0 with include_background=False (7/July) #2509

@SteEcker

Description

@SteEcker

Describe the bug
Focal Loss returns 0 for all entries when input consists of only one channel. Tried running the spleen 3D segmentation tutorial with DiceFocalLoss(include_background=False). Printing out dice and focal loss separately shows the problem.

I think the issue is that logpt = F.log_softmax(i, dim=1) returns 0 for arbritrary inputs. Should this be F.logsigmoid() in this case?

To Reproduce

input = torch.randn(1, 1, 10)
F.log_softmax(input, dim=1)

tensor([[[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]])

vs

input = torch.randn(1, 2, 10)
F.log_softmax(input, dim=1)

input = torch.randn(1, 2, 10)...
tensor([[[-2.6699, -0.4457, -1.1688, -0.3480, -0.9432, -0.8112, -0.2835,
          -2.2028, -1.3333, -1.8177],
         [-0.0718, -1.0226, -0.3722, -1.2245, -0.4933, -0.5876, -1.3990,
          -0.1171, -0.3060, -0.1772]]])

Expected behavior
Focal Loss should return correct log.probs. for single channel inputs.

Environment

Printing MONAI config...

MONAI version: 0.6.dev2126
Numpy version: 1.19.5
Pytorch version: 1.9.0+cu102
MONAI flags: HAS_EXT = False, USE_COMPILED = False
MONAI rev id: 2ad54662de25e9a964c33327f7f2f178655573ef

Optional dependencies:
Pytorch Ignite version: NOT INSTALLED or UNKNOWN VERSION.
Nibabel version: 3.0.2
scikit-image version: 0.16.2
Pillow version: 7.1.2
Tensorboard version: 2.4.1
gdown version: 3.6.4
TorchVision version: 0.10.0+cu102
ITK version: NOT INSTALLED or UNKNOWN VERSION.
tqdm version: 4.41.1
lmdb version: 0.99
psutil version: 5.4.8
pandas version: 1.1.5

Metadata

Metadata

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions