You can call model.apply(weights_init) in your training loop, if you want.
for data, target in train_loader):
    # your training code
    ...
    optimizer.step()
    ...
    model.apply(weighs_init)

Are you sure you want to reset your weights after every iteration?
If you really need the exact same weights, you would need to set the seed before calling weights_init:
torch.manual_seed(YOUR_SEED)
model.apply(weights_init)

for data, target in train_loader:
    ...
    torch.manual_seed(YOUR_SEED)
    model.apply(weights_init)