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.
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))