X = X.to(device) Y = Y.to(device) logits = model(X) preds = torch.max(logits, 1)[1].view(Y.size()) loss = criterion(logits, Y) total_epoch_loss += loss.item() total_epoch_correct += (preds == Y).float().sum().item() total_count += len(Y) return total_epoch_loss / len(_iter), total_epoch_correct / total_count if __name__ == "__main__": embedding, train_iter, valid_iter, test_iter = get_dataset( params.dataset, rate=params.noise_ratio, batch_size=params.batch_size) model_params = {} if params.dataset == "IMDB": model_params["output_size"] = 2 model_params["hidden_size"] = 256 if params.model == "LSTM" or params.model == "LSTMATT": model_params["weights"] = embedding if params.dataset == "CIFAR100": model_params["num_classes"] = 100 model = get_model(params.model, **model_params) if os.path.exists(save_path) and params.load: print("model loaded")
Y = Y.reshape(-1, 1) top1_num_corrects = (preds1 == Y).float().sum() top5_num_corrects = (preds5 == Y.expand_as(preds5)).float().sum() total_epoch_loss += loss.item() total_epoch_acc1 += top1_num_corrects.item() total_epoch_acc5 += top5_num_corrects.item() total_counter += len(Y) return (total_epoch_loss / len(_iter), total_epoch_acc1 / total_counter * 100, total_epoch_acc5 / total_counter * 100) if __name__ == "__main__": train_iter, test_iter = get_dataset("TinyImageNet", rate=params.noise_ratio, batch_size=params.batch_size) model = get_model(params.model) if params.load_from: model.load_state_dict(torch.load(params.load_from)) model.to(device) optim = Vadam2(model.parameters(), lr=params.lr * params.batch_size / 128, eps=1e-15, v=params.v, alpha=params.alpha, auto_v=params.auto, weight_decay=params.weight_decay) imgsize = EfficientNet.get_image_size(params.model) top1acc, top5acc = [], [] for epoch in range(params.num_epochs): train_loss, train_acc = train_model(model, train_iter, size=imgsize) test_loss, test_acc1, test_acc5 = eval_model(model, test_iter, size=imgsize) top1acc.append(test_acc1) top5acc.append(test_acc5)