Cause of periodic jumps in loss function
Looks like you may be feeding training data in a very specific way or weights and biases reset after a specific period of time, e.g. end of epoch?
I would start with checking that

training and validation sets consist of a desired class ratio
datapoints within mini batches are being shuffled
model parameters are being correctly updated during training