from tqdm import tqdm def train(model, loader, f_loss, optimizer, device): """ Train a model for one epoch, iterating over the loader using the f_loss to compute the loss and the optimizer to update the parameters of the model. Arguments : model -- A torch.nn.Module object loader -- A torch.utils.data.DataLoader f_loss -- The loss function, i.e. a loss Module optimizer -- A torch.optim.Optimzer object device -- a torch.device class specifying the device used for computation Returns : """ model.train() for _, (inputs, targets) in tqdm(enumerate(loader), total = len(loader)): inputs, targets = inputs.to(device), targets.to(device) # Compute the forward pass through the network up to the loss outputs = model(inputs) loss = f_loss(outputs, targets) # Backward and optimize optimizer.zero_grad() loss.backward() optimizer.step() print(model.regressor.weight) print(model.regressor.bias)