Shouldn't training and validation loss be approximate before the first epoch is finished?
Is your batch size the length of the full dataset? If you have $N$ samples, and feed in mini-batches of size $k&lt;N$, then batch losses are computed and the model's weights are updated with every $k$ samples. By the end of the first epoch, there may already have been significantly many updates (learning) from the training set. I believe Keras aggregates these batch losses to compute the epoch loss.

If $k=N$ however, it is possible that the distribution of your training and validation sets are different.