(model, criterion, loader, cpu)
| 296 | |
| 297 | |
| 298 | def evaluate(model, criterion, loader, cpu): |
| 299 | acc = AverageMeter() |
| 300 | loss = AverageMeter() |
| 301 | |
| 302 | model.eval() |
| 303 | for x, y in loader: |
| 304 | if not cpu: x, y = x.cuda(), y.cuda() |
| 305 | with torch.no_grad(): |
| 306 | _y = model(x) |
| 307 | ac = (_y.argmax(dim=1) == y).sum().item() / len(x) |
| 308 | lo = criterion(_y,y).item() |
| 309 | acc.update(ac, len(x)) |
| 310 | loss.update(lo, len(x)) |
| 311 | |
| 312 | return acc.average(), loss.average() |
| 313 | |
| 314 | |
| 315 | def model_state_to_cpu(model_state): |
nothing calls this directly
no test coverage detected