edshkim98:

I presume this lr_scheduler works by lr*0.95 for every epoch right?


Yes, that should be the case. You can double check it by printing the learning rates:
[...]
optimizer.step()
scheduler.step()
print(optimizer.param_groups[0]['lr'])
print(scheduler.get_last_lr())




 edshkim98:

Do you think the above could help to solve the imbalance problem?


You could certainly try your oversampling approach, but currently you are creating a lot of class0 samples, so your model might overfit to this class even more now.