I can’t find any obvious errors in the code.
Could you post the current class distribution you are seeing in each batch?
I assume Train_labels contains the labels for the complete training_set?
If so you don’t need to wrap it into a Subset.
PS: You can post code snippets by wrapping them into three backticks ```, which would make debugging easier.