I am training 3D data with multi-class 3D target ground truths(9 tissue labels) for segmentation. Using dice Loss and focal dice loss as loss criterion. Updating optimizer every second batch (gradient accumulation) in PyTorch. What could be the reason for the fluctuating loss, instead of a smooth loss curve? Also, the dice score seems steady after 70%. I need to know how to improve that and what could be done in general. enter image description here
Hyperparams: 100 epochs 1e-3 learning rate
U-net 3D architecture

optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate, betas=(0.9, 0.999))
  • $\begingroup$ Partially, or very little, but I have other questions attached here too. $\endgroup$
    – banikr
    Jun 1, 2021 at 5:00
  • $\begingroup$ You have given two questions: why is this curve unsteady, and how do I go from my model to a better one. This answers the first; the latter couldn’t possibly be answered on the basis of the information you’ve given. $\endgroup$ Jun 1, 2021 at 9:48
  • $\begingroup$ I can add additional info if required. What would you need to know to answer to some extent in detail? $\endgroup$
    – banikr
    Jun 1, 2021 at 17:09


Browse other questions tagged or ask your own question.