optimizer.zero_grad() loss.backward() optimizer.step() m.track_loss(loss) for validation_batch in validation_loader: in_features, t_slf = validation_batch in_features = in_features.to(run.device) t_slf = t_slf.to(run.device) preds, mu, logvar = network(in_features) mse_valid = mse_loss(t_slf, preds) valid_loss = vae_loss(mse_valid, mu, logvar) m.track_validation_loss(valid_loss) m.end_epoch() for param_group in optimizer.param_groups: print(param_group['lr']) print('epoch: {}, loss: {}, v_loss: {}, lr: {}'.format( epoch, m.item_loss, m.validation_loss, lr)) torch.save( { 'epoch': epoch, 'model_state_dict': network.state_dict(), 'optimizer_state_dict': optimizer.state_dict(), 'loss': m.epoch_loss, 'lr': lr }, MODEL_PATH_VAE)