Python torch.no_grad() Examples
The following are 30
code examples of torch.no_grad().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch
, or try the search function
.
Example #1
Source File: multiscale_tester.py From L3C-PyTorch with GNU General Public License v3.0 | 6 votes |
def test(self, testset): # _clean_cuda_cache(0) test_id = TestID(testset.id, self.restore_itr) return_cache = (not self.flags.overwrite_cache and not self.flags.write_to_files and test_id in self.test_output_cache) if return_cache: print(f'*** Found cached: {test_id}') return self.test_output_cache[test_id] print('Testing {}'.format(testset)) ds = self.get_test_dataset(testset) with torch.no_grad(): result = self._test(ds) if not result: # because self.flags.write_to_files return None self.test_output_cache[test_id] = result return result
Example #2
Source File: ohem_sampler.py From mmdetection with Apache License 2.0 | 6 votes |
def hard_mining(self, inds, num_expected, bboxes, labels, feats): with torch.no_grad(): rois = bbox2roi([bboxes]) bbox_feats = self.bbox_roi_extractor( feats[:self.bbox_roi_extractor.num_inputs], rois) cls_score, _ = self.bbox_head(bbox_feats) loss = self.bbox_head.loss( cls_score=cls_score, bbox_pred=None, rois=rois, labels=labels, label_weights=cls_score.new_ones(cls_score.size(0)), bbox_targets=None, bbox_weights=None, reduction_override='none')['loss_cls'] _, topk_loss_inds = loss.topk(num_expected) return inds[topk_loss_inds]
Example #3
Source File: test_robustness.py From mmdetection with Apache License 2.0 | 6 votes |
def single_gpu_test(model, data_loader, show=False): model.eval() results = [] dataset = data_loader.dataset prog_bar = mmcv.ProgressBar(len(dataset)) for i, data in enumerate(data_loader): with torch.no_grad(): result = model(return_loss=False, rescale=not show, **data) if show: model.module.show_result(data, result, dataset.img_norm_cfg) # encode mask results if isinstance(result, tuple): bbox_results, mask_results = result encoded_mask_results = encode_mask_results(mask_results) result = bbox_results, encoded_mask_results results.append(result) batch_size = data['img'][0].size(0) for _ in range(batch_size): prog_bar.update() return results
Example #4
Source File: utils.py From deep-learning-note with MIT License | 6 votes |
def evaluate_accuracy(data_iter, net, device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')): acc_sum, n = 0.0, 0 with torch.no_grad(): for X, y in data_iter: if isinstance(net, torch.nn.Module): net.eval() # 评估模式,会关闭 dropout acc_sum += (net(X.to(device)).argmax(dim=1) == y.to(device)).float().sum().cpu().item() net.train() # 改回训练模式 else: # 如果是自定义的模型 if 'is_training' in net.__code__.co_varnames: acc_sum += (net(X, is_training=False).argmax(dim=1) == y).float().sum().item() else: acc_sum += (net(X).argmax(dim=1) == y).float().sum().item() n += y.shape[0] return acc_sum / n
Example #5
Source File: data_processor.py From neural-pipeline with MIT License | 6 votes |
def predict(self, data, is_train=False) -> torch.Tensor or dict: """ Make predict by data. If ``is_train`` is ``True`` - this operation will compute gradients. If ``is_train`` is ``False`` - this will work with ``model.eval()`` and ``torch.no_grad`` :param data: data in dict :param is_train: is data processor need train on data or just predict :return: processed output :rtype: model return type """ if is_train: self.model().train() output = self._model(self._pick_model_input(data)) else: output = super().predict(data) return output
Example #6
Source File: trainer.py From treelstm.pytorch with MIT License | 6 votes |
def test(self, dataset): self.model.eval() with torch.no_grad(): total_loss = 0.0 predictions = torch.zeros(len(dataset), dtype=torch.float, device='cpu') indices = torch.arange(1, dataset.num_classes + 1, dtype=torch.float, device='cpu') for idx in tqdm(range(len(dataset)), desc='Testing epoch ' + str(self.epoch) + ''): ltree, linput, rtree, rinput, label = dataset[idx] target = utils.map_label_to_target(label, dataset.num_classes) linput, rinput = linput.to(self.device), rinput.to(self.device) target = target.to(self.device) output = self.model(ltree, linput, rtree, rinput) loss = self.criterion(output, target) total_loss += loss.item() output = output.squeeze().to('cpu') predictions[idx] = torch.dot(indices, torch.exp(output)) return total_loss / len(dataset), predictions
Example #7
Source File: torch_utils.py From pruning_yolov3 with GNU General Public License v3.0 | 6 votes |
def fuse_conv_and_bn(conv, bn): # https://tehnokv.com/posts/fusing-batchnorm-and-conv/ with torch.no_grad(): # init fusedconv = torch.nn.Conv2d(conv.in_channels, conv.out_channels, kernel_size=conv.kernel_size, stride=conv.stride, padding=conv.padding, bias=True) # prepare filters w_conv = conv.weight.clone().view(conv.out_channels, -1) w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var))) fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.size())) # prepare spatial bias if conv.bias is not None: b_conv = conv.bias else: b_conv = torch.zeros(conv.weight.size(0)) b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps)) fusedconv.bias.copy_(b_conv + b_bn) return fusedconv
Example #8
Source File: mnist.py From Pytorch-Project-Template with MIT License | 6 votes |
def test(args, model, device, test_loader): model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for data, target in test_loader: data, target = data.to(device), target.to(device) output = model(data) test_loss += F.nll_loss(output, target, size_average=False).item() # sum up batch loss pred = output.max(1, keepdim=True)[1] # get the index of the max log-probability correct += pred.eq(target.view_as(pred)).sum().item() test_loss /= len(test_loader.dataset) print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format( test_loss, correct, len(test_loader.dataset), 100. * correct / len(test_loader.dataset)))
Example #9
Source File: dqn.py From Pytorch-Project-Template with MIT License | 6 votes |
def select_action(self, state): """ The action selection function, it either uses the model to choose an action or samples one uniformly. :param state: current state of the model :return: """ if self.cuda: state = state.cuda() sample = random.random() eps_threshold = self.config.eps_start + (self.config.eps_start - self.config.eps_end) * math.exp( -1. * self.current_iteration / self.config.eps_decay) self.current_iteration += 1 if sample > eps_threshold: with torch.no_grad(): return self.policy_model(state).max(1)[1].view(1, 1) else: return torch.tensor([[random.randrange(2)]], device=self.device, dtype=torch.long)
Example #10
Source File: mnist.py From Pytorch-Project-Template with MIT License | 6 votes |
def validate(self): """ One cycle of model validation :return: """ self.model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for data, target in self.data_loader.test_loader: data, target = data.to(self.device), target.to(self.device) output = self.model(data) test_loss += F.nll_loss(output, target, size_average=False).item() # sum up batch loss pred = output.max(1, keepdim=True)[1] # get the index of the max log-probability correct += pred.eq(target.view_as(pred)).sum().item() test_loss /= len(self.data_loader.test_loader.dataset) self.logger.info('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format( test_loss, correct, len(self.data_loader.test_loader.dataset), 100. * correct / len(self.data_loader.test_loader.dataset)))
Example #11
Source File: main.py From transferlearning with MIT License | 6 votes |
def extract_feature(model, dataloader, save_path, load_from_disk=True, model_path=''): if load_from_disk: model = models.Network(base_net=args.model_name, n_class=args.num_class) model.load_state_dict(torch.load(model_path)) model = model.to(DEVICE) model.eval() correct = 0 fea_all = torch.zeros(1,1+model.base_network.output_num()).to(DEVICE) with torch.no_grad(): for inputs, labels in dataloader: inputs, labels = inputs.to(DEVICE), labels.to(DEVICE) feas = model.get_features(inputs) labels = labels.view(labels.size(0), 1).float() x = torch.cat((feas, labels), dim=1) fea_all = torch.cat((fea_all, x), dim=0) outputs = model(inputs) preds = torch.max(outputs, 1)[1] correct += torch.sum(preds == labels.data.long()) test_acc = correct.double() / len(dataloader.dataset) fea_numpy = fea_all.cpu().numpy() np.savetxt(save_path, fea_numpy[1:], fmt='%.6f', delimiter=',') print('Test acc: %f' % test_acc) # You may want to classify with 1nn after getting features
Example #12
Source File: DAN.py From transferlearning with MIT License | 6 votes |
def test(model): model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for tgt_test_data, tgt_test_label in tgt_test_loader: if cuda: tgt_test_data, tgt_test_label = tgt_test_data.cuda(), tgt_test_label.cuda() tgt_test_data, tgt_test_label = Variable(tgt_test_data), Variable(tgt_test_label) tgt_pred, mmd_loss = model(tgt_test_data, tgt_test_data) test_loss += F.nll_loss(F.log_softmax(tgt_pred, dim = 1), tgt_test_label, reduction='sum').item() # sum up batch loss pred = tgt_pred.data.max(1)[1] # get the index of the max log-probability correct += pred.eq(tgt_test_label.data.view_as(pred)).cpu().sum() test_loss /= tgt_dataset_len print('\n{} set: Average loss: {:.4f}, Accuracy: {}/{} ({:.2f}%)\n'.format( tgt_name, test_loss, correct, tgt_dataset_len, 100. * correct / tgt_dataset_len)) return correct
Example #13
Source File: main.py From transferlearning with MIT License | 6 votes |
def test(model, target_test_loader): model.eval() test_loss = utils.AverageMeter() correct = 0 criterion = torch.nn.CrossEntropyLoss() len_target_dataset = len(target_test_loader.dataset) with torch.no_grad(): for data, target in target_test_loader: data, target = data.to(DEVICE), target.to(DEVICE) s_output = model.predict(data) loss = criterion(s_output, target) test_loss.update(loss.item()) pred = torch.max(s_output, 1)[1] correct += torch.sum(pred == target) print('{} --> {}: max correct: {}, accuracy{: .2f}%\n'.format( source_name, target_name, correct, 100. * correct / len_target_dataset))
Example #14
Source File: MRAN.py From transferlearning with MIT License | 6 votes |
def test(model, test_loader): model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for data, target in test_loader: if args.cuda: data, target = data.cuda(), target.cuda() s_output, t_output = model(data, data, target) test_loss += F.nll_loss(F.log_softmax(s_output, dim = 1), target, reduction='sum').item()# sum up batch loss pred = s_output.data.max(1)[1] # get the index of the max log-probability correct += pred.eq(target.data.view_as(pred)).cpu().sum() test_loss /= len(test_loader.dataset) print(args.test_dir, '\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format( test_loss, correct, len(test_loader.dataset), 100. * correct / len(test_loader.dataset))) return correct
Example #15
Source File: main.py From transferlearning with MIT License | 6 votes |
def test(model, data_tar, e): total_loss_test = 0 correct = 0 criterion = nn.CrossEntropyLoss() with torch.no_grad(): for batch_id, (data, target) in enumerate(data_tar): data, target = data.view(-1,28 * 28).to(DEVICE),target.to(DEVICE) model.eval() ypred, _, _ = model(data, data) loss = criterion(ypred, target) pred = ypred.data.max(1)[1] # get the index of the max log-probability correct += pred.eq(target.data.view_as(pred)).cpu().sum() total_loss_test += loss.data accuracy = correct * 100. / len(data_tar.dataset) res = 'Test: total loss: {:.6f}, correct: [{}/{}], testing accuracy: {:.4f}%'.format( total_loss_test, correct, len(data_tar.dataset), accuracy ) tqdm.write(res) RESULT_TEST.append([e, total_loss_test, accuracy]) log_test.write(res + '\n')
Example #16
Source File: DSAN.py From transferlearning with MIT License | 6 votes |
def test(model): model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for data, target in target_test_loader: if cuda: data, target = data.cuda(), target.cuda() data, target = Variable(data), Variable(target) s_output, t_output = model(data, data, target) test_loss += F.nll_loss(F.log_softmax(s_output, dim = 1), target).item() # sum up batch loss pred = s_output.data.max(1)[1] # get the index of the max log-probability correct += pred.eq(target.data.view_as(pred)).cpu().sum() test_loss /= len_target_dataset print('\n{} set: Average loss: {:.4f}, Accuracy: {}/{} ({:.2f}%)\n'.format( target_name, test_loss, correct, len_target_dataset, 100. * correct / len_target_dataset)) return correct
Example #17
Source File: test.py From Pytorch-Networks with MIT License | 6 votes |
def test(test_loader, model, logger=None, Writer=None): model.eval() with torch.no_grad(): for its, (img_line, img_noise) in enumerate(test_loader): img_line = img_line.cuda() if torch.cuda.is_available() else img_line img_noise = img_noise.cuda() if torch.cuda.is_available() else img_noise g_results = model(torch.cat((img_line, img_noise), 1)) for i in range(img_line.shape[0]): img_line_test = img_line[i].cpu().numpy().transpose((1,2,0)) * 255 img_line_test = img_line_test.squeeze() cv2.imwrite((cfg.PATH.RES_TEST+"line_{}.jpg".format(i+its)), img_line_test) img_res_test = g_results[i].cpu().numpy().transpose((1,2,0)) * 255 cv2.imwrite((cfg.PATH.RES_TEST+"res_{}.jpg".format(i+its)), img_res_test) print("{}/{}".format(i+its,its_num))
Example #18
Source File: test.py From Pytorch-Networks with MIT License | 6 votes |
def val(val_loader, model, logger=None, loss_function=None, epoch=0, print_fre=50): model.eval() its_num = len(val_loader) acc_single_val = CalculateAcc() loss_val = SelfData() data_begin = time.time() with torch.no_grad(): for its, (imgs, targets) in enumerate(val_loader): data_time = time.time()-data_begin imgs = imgs.cuda() if torch.cuda.is_available() else imgs targets = targets.cuda() if torch.cuda.is_available() else targets outputs = model(imgs) loss = loss_function(outputs,targets) if loss_function is not None else torch.tensor(0) train_time = time.time()-(data_time+data_begin) data_begin = time.time() loss_val.add_value(loss.cpu()) acc_single_val.add_value(outputs.cpu(),targets.cpu()) mem = torch.cuda.memory_cached() / 1E9 if torch.cuda.is_available() else 0 if its % print_fre == 0: print_to_screen(loss, 0, its, epoch, its_num, logger, data_time, train_time, mem, acc=acc_single_val.print_()) return acc_single_val.print_(), loss_val.avg()
Example #19
Source File: finetune.py From PSMNet with MIT License | 6 votes |
def test(imgL,imgR,disp_true): model.eval() imgL = Variable(torch.FloatTensor(imgL)) imgR = Variable(torch.FloatTensor(imgR)) if args.cuda: imgL, imgR = imgL.cuda(), imgR.cuda() with torch.no_grad(): output3 = model(imgL,imgR) pred_disp = output3.data.cpu() #computing 3-px error# true_disp = disp_true index = np.argwhere(true_disp>0) disp_true[index[0][:], index[1][:], index[2][:]] = np.abs(true_disp[index[0][:], index[1][:], index[2][:]]-pred_disp[index[0][:], index[1][:], index[2][:]]) correct = (disp_true[index[0][:], index[1][:], index[2][:]] < 3)|(disp_true[index[0][:], index[1][:], index[2][:]] < true_disp[index[0][:], index[1][:], index[2][:]]*0.05) torch.cuda.empty_cache() return 1-(float(torch.sum(correct))/float(len(index[0])))
Example #20
Source File: train.py From transferlearning with MIT License | 6 votes |
def test(model, test_loader): model.eval() test_loss = 0 correct = 0 with torch.no_grad(): for data, target in test_loader: data, target = data.to(DEVICE), target.to(DEVICE) out = model(data, data, target, DEVICE) s_output = out[0] test_loss += F.nll_loss(F.log_softmax(s_output, dim = 1), target, size_average=False).item() # sum up batch loss pred = s_output.data.max(1)[1] # get the index of the max log-probability correct += pred.eq(target.data.view_as(pred)).cpu().sum() test_loss /= len(test_loader.dataset) print(args.test_dir, '\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format( test_loss, correct, len(test_loader.dataset), 100. * correct / len(test_loader.dataset))) return correct
Example #21
Source File: pytorch_ext.py From L3C-PyTorch with GNU General Public License v3.0 | 6 votes |
def get_average_grad_norm(params, norm_type=2): """ :param params: Assumed to be generator :param norm_type: """ # nicked from torch.nn.utils.clip_grad_norm with torch.no_grad(): average_norm = 0 num_params = 0 for p in params: if p.grad is None: continue average_norm += p.grad.data.norm(norm_type) num_params += 1 if num_params == 0: return 0 return average_norm / float(num_params) # Datasets --------------------------------------------------------------------
Example #22
Source File: train.py From comet-commonsense with Apache License 2.0 | 6 votes |
def run(self): self.set_logger() # Initialize progress bar bar = utils.set_progress_bar(self.total_iters) for cycle_num in range(int(self.total_iters / self.iters)): self.model.train() self.cycle(bar, cycle_num) with torch.no_grad(): self.run_evaluation_cycle() self.log_losses(self.opt, self.losses) self.update_top_score(self.opt) self.save_model(self.get_tracked_score()) self.stop_logger()
Example #23
Source File: iou_loss.py From mmdetection with Apache License 2.0 | 5 votes |
def bounded_iou_loss(pred, target, beta=0.2, eps=1e-3): """`Improving Object Localization with Fitness NMS and Bounded IoU Loss. <https://arxiv.org/abs/1711.00164>`_. Args: pred (torch.Tensor): Predicted bboxes. target (torch.Tensor): Target bboxes. beta (float): beta parameter in smoothl1. eps (float): eps to avoid NaN. """ pred_ctrx = (pred[:, 0] + pred[:, 2]) * 0.5 pred_ctry = (pred[:, 1] + pred[:, 3]) * 0.5 pred_w = pred[:, 2] - pred[:, 0] pred_h = pred[:, 3] - pred[:, 1] with torch.no_grad(): target_ctrx = (target[:, 0] + target[:, 2]) * 0.5 target_ctry = (target[:, 1] + target[:, 3]) * 0.5 target_w = target[:, 2] - target[:, 0] target_h = target[:, 3] - target[:, 1] dx = target_ctrx - pred_ctrx dy = target_ctry - pred_ctry loss_dx = 1 - torch.max( (target_w - 2 * dx.abs()) / (target_w + 2 * dx.abs() + eps), torch.zeros_like(dx)) loss_dy = 1 - torch.max( (target_h - 2 * dy.abs()) / (target_h + 2 * dy.abs() + eps), torch.zeros_like(dy)) loss_dw = 1 - torch.min(target_w / (pred_w + eps), pred_w / (target_w + eps)) loss_dh = 1 - torch.min(target_h / (pred_h + eps), pred_h / (target_h + eps)) loss_comb = torch.stack([loss_dx, loss_dy, loss_dw, loss_dh], dim=-1).view(loss_dx.size(0), -1) loss = torch.where(loss_comb < beta, 0.5 * loss_comb * loss_comb / beta, loss_comb - 0.5 * beta) return loss
Example #24
Source File: test_models_aug_test.py From mmdetection with Apache License 2.0 | 5 votes |
def model_aug_test_template(cfg_file): # get config cfg = mmcv.Config.fromfile(cfg_file) # init model cfg.model.pretrained = None model = build_detector(cfg.model, train_cfg=None, test_cfg=cfg.test_cfg) # init test pipeline and set aug test load_cfg, multi_scale_cfg = cfg.test_pipeline multi_scale_cfg['flip'] = True multi_scale_cfg['img_scale'] = [(1333, 800), (800, 600), (640, 480)] load = build_from_cfg(load_cfg, PIPELINES) transform = build_from_cfg(multi_scale_cfg, PIPELINES) results = dict( img_prefix=osp.join(osp.dirname(__file__), '../data'), img_info=dict(filename='color.jpg')) results = transform(load(results)) assert len(results['img']) == 6 assert len(results['img_metas']) == 6 results['img'] = [collate([x]) for x in results['img']] results['img_metas'] = [collate([x]).data[0] for x in results['img_metas']] # aug test the model model.eval() with torch.no_grad(): aug_result = model(return_loss=False, rescale=True, **results) return aug_result
Example #25
Source File: mmd_pytorch.py From transferlearning with MIT License | 5 votes |
def forward(self, source, target): if self.kernel_type == 'linear': return self.linear_mmd2(source, target) elif self.kernel_type == 'rbf': batch_size = int(source.size()[0]) kernels = self.guassian_kernel( source, target, kernel_mul=self.kernel_mul, kernel_num=self.kernel_num, fix_sigma=self.fix_sigma) with torch.no_grad(): XX = torch.mean(kernels[:batch_size, :batch_size]) YY = torch.mean(kernels[batch_size:, batch_size:]) XY = torch.mean(kernels[:batch_size, batch_size:]) YX = torch.mean(kernels[batch_size:, :batch_size]) loss = torch.mean(XX + YY - XY - YX) torch.cuda.empty_cache() return loss
Example #26
Source File: inference.py From mmdetection with Apache License 2.0 | 5 votes |
def inference_detector(model, img): """Inference image(s) with the detector. Args: model (nn.Module): The loaded detector. imgs (str/ndarray or list[str/ndarray]): Either image files or loaded images. Returns: If imgs is a str, a generator will be returned, otherwise return the detection results directly. """ cfg = model.cfg device = next(model.parameters()).device # model device # build the data pipeline test_pipeline = [LoadImage()] + cfg.data.test.pipeline[1:] test_pipeline = Compose(test_pipeline) # prepare data data = dict(img=img) data = test_pipeline(data) data = collate([data], samples_per_gpu=1) if next(model.parameters()).is_cuda: # scatter to specified GPU data = scatter(data, [device])[0] else: # Use torchvision ops for CPU mode instead for m in model.modules(): if isinstance(m, (RoIPool, RoIAlign)): if not m.aligned: # aligned=False is not implemented on CPU # set use_torchvision on-the-fly m.use_torchvision = True warnings.warn('We set use_torchvision=True in CPU mode.') # just get the actual data from DataContainer data['img_metas'] = data['img_metas'][0].data # forward the model with torch.no_grad(): result = model(return_loss=False, rescale=True, **data) return result
Example #27
Source File: test.py From Pytorch-Networks with MIT License | 5 votes |
def embedding(val_loader,val_loader_1, model_0, model_1, model_2, logger, print_fre=50): model_0.eval() model_1.eval() model_2.eval() its_num = len(val_loader) acc_single_val = CalculateAcc() data_begin = time.time() with torch.no_grad(): for its, (load_0, load_1) in enumerate(zip(val_loader,val_loader_1)): data_time = time.time()-data_begin imgs, targets, imgs_1 = load_0[0], load_0[1], load_1[0] imgs = imgs.cuda() if torch.cuda.is_available() else imgs targets = targets.cuda() if torch.cuda.is_available() else targets outputs_0 = model_0(imgs) outputs_1 = model_1(imgs_1) outputs_2 = model_2(imgs) outputs = (outputs_0 + outputs_1 + outputs_2)/3 loss = 0 train_time = time.time()-(data_time+data_begin) data_begin = time.time() acc_single_val.add_value(outputs.cpu(),targets.cpu()) mem = torch.cuda.memory_cached() / 1E9 if torch.cuda.is_available() else 0 if its % print_fre == 0: print_to_screen(loss, 0, its, 0, its_num, logger, data_time, train_time, mem, acc=acc_single_val.print_()) return acc_single_val.print_()
Example #28
Source File: functions.py From comet-commonsense with Apache License 2.0 | 5 votes |
def get_atomic_sequence(input_event, model, sampler, data_loader, text_encoder, category): if isinstance(category, list): outputs = {} for cat in category: new_outputs = get_atomic_sequence( input_event, model, sampler, data_loader, text_encoder, cat) outputs.update(new_outputs) return outputs elif category == "all": outputs = {} for category in data_loader.categories: new_outputs = get_atomic_sequence( input_event, model, sampler, data_loader, text_encoder, category) outputs.update(new_outputs) return outputs else: sequence_all = {} sequence_all["event"] = input_event sequence_all["effect_type"] = category with torch.no_grad(): batch = set_atomic_inputs( input_event, category, data_loader, text_encoder) sampling_result = sampler.generate_sequence( batch, model, data_loader, data_loader.max_event + data.atomic_data.num_delimiter_tokens["category"], data_loader.max_effect - data.atomic_data.num_delimiter_tokens["category"]) sequence_all['beams'] = sampling_result["beams"] print_atomic_sequence(sequence_all) return {category: sequence_all}
Example #29
Source File: main.py From fast-MPN-COV with MIT License | 5 votes |
def accuracy(output, target, topk=(1,)): """Computes the precision@k for the specified values of k""" with torch.no_grad(): maxk = max(topk) batch_size = target.size(0) _, pred = output.topk(maxk, 1, True, True) pred = pred.t() correct = pred.eq(target.view(1, -1).expand_as(pred)) res = [] for k in topk: correct_k = correct[:k].view(-1).float().sum(0, keepdim=True) res.append(correct_k.mul_(100.0 / batch_size)) return res
Example #30
Source File: main.py From transferlearning with MIT License | 5 votes |
def test(model, dataset_name, epoch): alpha = 0 dataloader = data_loader.load_test_data(dataset_name) model.eval() n_correct = 0 with torch.no_grad(): for _, (t_img, t_label) in enumerate(dataloader): t_img, t_label = t_img.to(DEVICE), t_label.to(DEVICE) class_output, _ = model(input_data=t_img, alpha=alpha) prob, pred = torch.max(class_output.data, 1) n_correct += (pred == t_label.long()).sum().item() acc = float(n_correct) / len(dataloader.dataset) * 100 return acc