I guess I got the point.
I am not restarting the Python kernel inside the notebook (I ran all the cells and wait for next commands in the next cell), and I guess it is because of the caching allocator.
I just thought that I would be able to train the model again in the same kernel without any constraints. However in this way, I need to restart kernel and rerun all of my code above the training part.
Thank you so much for the answer, this clears my mind about the notebook kernel