Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| <pre> | |
| import evaluate | |
| +from accelerate import Accelerator | |
| +accelerator = Accelerator() | |
| +dataloader, model, optimizer scheduler = accelerator.prepare( | |
| + dataloader, model, optimizer, scheduler | |
| +) | |
| metric = evaluate.load("accuracy") | |
| for batch in train_dataloader: | |
| optimizer.zero_grad() | |
| inputs, targets = batch | |
| - inputs = inputs.to(device) | |
| - targets = targets.to(device) | |
| outputs = model(inputs) | |
| loss = loss_function(outputs, targets) | |
| loss.backward() | |
| optimizer.step() | |
| scheduler.step() | |
| model.eval() | |
| for batch in eval_dataloader: | |
| inputs, targets = batch | |
| - inputs = inputs.to(device) | |
| - targets = targets.to(device) | |
| with torch.no_grad(): | |
| outputs = model(inputs) | |
| predictions = outputs.argmax(dim=-1) | |
| + predictions, references = accelerator.gather_for_metrics( | |
| + (predictions, references) | |
| + ) | |
| metric.add_batch( | |
| predictions = predictions, | |
| references = references | |
| ) | |
| print(metric.compute())</pre> |