Python torch.nn.functional.cross_entropy() Examples
The following are 30
code examples of torch.nn.functional.cross_entropy().
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.nn.functional
, or try the search function
.
Example #1
Source File: network.py From Collaborative-Learning-for-Weakly-Supervised-Object-Detection with MIT License | 6 votes |
def _add_losses(self, sigma_rpn=3.0): # classification loss image_prob = self._predictions["image_prob"] # assert ((image_prob.data>=0).sum()+(image_prob.data<=1).sum())==image_prob.data.size(1)*2, image_prob # assert ((self._labels.data>=0).sum()+(self._labels.data<=1).sum())==self._labels.data.size(1)*2, self._labels cross_entropy = F.binary_cross_entropy(image_prob.clamp(0,1),self._labels) fast_loss = self._add_losses_fast() self._losses['wsddn_loss'] = cross_entropy self._losses['fast_loss'] = fast_loss loss = cross_entropy + fast_loss self._losses['total_loss'] = loss for k in self._losses.keys(): self._event_summaries[k] = self._losses[k] return loss
Example #2
Source File: region_proposal_network.py From easy-faster-rcnn.pytorch with MIT License | 6 votes |
def loss(self, anchor_objectnesses: Tensor, anchor_transformers: Tensor, gt_anchor_objectnesses: Tensor, gt_anchor_transformers: Tensor, batch_size: int, batch_indices: Tensor) -> Tuple[Tensor, Tensor]: cross_entropies = torch.empty(batch_size, dtype=torch.float, device=anchor_objectnesses.device) smooth_l1_losses = torch.empty(batch_size, dtype=torch.float, device=anchor_transformers.device) for batch_index in range(batch_size): selected_indices = (batch_indices == batch_index).nonzero().view(-1) cross_entropy = F.cross_entropy(input=anchor_objectnesses[selected_indices], target=gt_anchor_objectnesses[selected_indices]) fg_indices = gt_anchor_objectnesses[selected_indices].nonzero().view(-1) smooth_l1_loss = beta_smooth_l1_loss(input=anchor_transformers[selected_indices][fg_indices], target=gt_anchor_transformers[selected_indices][fg_indices], beta=self._anchor_smooth_l1_loss_beta) cross_entropies[batch_index] = cross_entropy smooth_l1_losses[batch_index] = smooth_l1_loss return cross_entropies, smooth_l1_losses
Example #3
Source File: train_forward.py From glc with Apache License 2.0 | 6 votes |
def test(): net.eval() loss_avg = 0.0 correct = 0 for batch_idx, (data, target) in enumerate(test_loader): data, target = torch.autograd.Variable(data.cuda(), volatile=True),\ torch.autograd.Variable(target.cuda(), volatile=True) # forward output = net(data) loss = F.cross_entropy(output, target) # accuracy pred = output.data.max(1)[1] correct += pred.eq(target.data).sum() # test loss average loss_avg += loss.data[0] state['test_loss'] = loss_avg / len(test_loader) state['test_accuracy'] = correct / len(test_loader.dataset) # Main loop
Example #4
Source File: main.py From network-slimming with MIT License | 6 votes |
def test(): model.eval() test_loss = 0 correct = 0 for data, target in test_loader: if args.cuda: data, target = data.cuda(), target.cuda() data, target = Variable(data, volatile=True), Variable(target) output = model(data) test_loss += F.cross_entropy(output, target, size_average=False).data[0] # sum up batch loss pred = output.data.max(1, keepdim=True)[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('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.1f}%)\n'.format( test_loss, correct, len(test_loader.dataset), 100. * correct / len(test_loader.dataset))) return correct / float(len(test_loader.dataset))
Example #5
Source File: main.py From network-slimming with MIT License | 6 votes |
def train(epoch): model.train() for batch_idx, (data, target) in enumerate(train_loader): if args.cuda: data, target = data.cuda(), target.cuda() data, target = Variable(data), Variable(target) optimizer.zero_grad() output = model(data) loss = F.cross_entropy(output, target) pred = output.data.max(1, keepdim=True)[1] loss.backward() if args.sr: updateBN() optimizer.step() if batch_idx % args.log_interval == 0: print('Train Epoch: {} [{}/{} ({:.1f}%)]\tLoss: {:.6f}'.format( epoch, batch_idx * len(data), len(train_loader.dataset), 100. * batch_idx / len(train_loader), loss.data[0]))
Example #6
Source File: main_mask.py From network-slimming with MIT License | 6 votes |
def test(): model.eval() test_loss = 0 correct = 0 for data, target in test_loader: if args.cuda: data, target = data.cuda(), target.cuda() data, target = Variable(data, volatile=True), Variable(target) output = model(data) test_loss += F.cross_entropy(output, target, size_average=False).data[0] # sum up batch loss pred = output.data.max(1, keepdim=True)[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('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.1f}%)\n'.format( test_loss, correct, len(test_loader.dataset), 100. * correct / len(test_loader.dataset))) return correct / float(len(test_loader.dataset))
Example #7
Source File: main_mask.py From network-slimming with MIT License | 6 votes |
def train(epoch): model.train() for batch_idx, (data, target) in enumerate(train_loader): if args.cuda: data, target = data.cuda(), target.cuda() data, target = Variable(data), Variable(target) optimizer.zero_grad() output = model(data) loss = F.cross_entropy(output, target) pred = output.data.max(1, keepdim=True)[1] loss.backward() if args.sr: updateBN() BN_grad_zero() optimizer.step() if batch_idx % args.log_interval == 0: print('Train Epoch: {} [{}/{} ({:.1f}%)]\tLoss: {:.6f}'.format( epoch, batch_idx * len(data), len(train_loader.dataset), 100. * batch_idx / len(train_loader), loss.data[0]))
Example #8
Source File: transformer.py From naru with Apache License 2.0 | 6 votes |
def nll(self, logits, data): """Calculates -log p(data), given logits (the conditionals). Args: logits: [batch size, ncols+1, d_model]. data: [batch size, ncols]. Returns: nll: [batch size]. """ if data.dtype != torch.long: data = data.long() nll = torch.zeros(logits.size()[0], device=logits.device) for i in range(self.nin): logits_i = self.logits_for_col(i, logits) ce = F.cross_entropy(logits_i, data[:, i], reduction='none') nll += ce return nll
Example #9
Source File: train_forward_gold.py From glc with Apache License 2.0 | 6 votes |
def test(): net.eval() loss_avg = 0.0 correct = 0 for batch_idx, (data, target) in enumerate(test_loader): data, target = torch.autograd.Variable(data.cuda(), volatile=True),\ torch.autograd.Variable(target.cuda(), volatile=True) # forward output = net(data) loss = F.cross_entropy(output, target) # accuracy pred = output.data.max(1)[1] correct += pred.eq(target.data).sum() # test loss average loss_avg += loss.data[0] state['test_loss'] = loss_avg / len(test_loader) state['test_accuracy'] = correct / len(test_loader.dataset) # Main loop
Example #10
Source File: made.py From naru with Apache License 2.0 | 6 votes |
def nll(self, logits, data): """Calculates -log p(data), given logits (the conditionals). Args: logits: [batch size, hidden] where hidden can either be sum(dom sizes), or emb_dims. data: [batch size, nin]. Returns: nll: [batch size]. """ if data.dtype != torch.long: data = data.long() nll = torch.zeros(logits.size()[0], device=logits.device) for i in range(self.nin): logits_i = self.logits_for_col(i, logits) nll += F.cross_entropy(logits_i, data[:, i], reduction='none') return nll
Example #11
Source File: loss.py From Res2Net-maskrcnn with MIT License | 6 votes |
def __call__(self, proposals, keypoint_logits): heatmaps = [] valid = [] for proposals_per_image in proposals: kp = proposals_per_image.get_field("keypoints") heatmaps_per_image, valid_per_image = project_keypoints_to_heatmap( kp, proposals_per_image, self.discretization_size ) heatmaps.append(heatmaps_per_image.view(-1)) valid.append(valid_per_image.view(-1)) keypoint_targets = cat(heatmaps, dim=0) valid = cat(valid, dim=0).to(dtype=torch.uint8) valid = torch.nonzero(valid).squeeze(1) # torch.mean (in binary_cross_entropy_with_logits) does'nt # accept empty tensors, so handle it sepaartely if keypoint_targets.numel() == 0 or len(valid) == 0: return keypoint_logits.sum() * 0 N, K, H, W = keypoint_logits.shape keypoint_logits = keypoint_logits.view(N * K, H * W) keypoint_loss = F.cross_entropy(keypoint_logits[valid], keypoint_targets[valid]) return keypoint_loss
Example #12
Source File: gfocal_loss.py From mmdetection with Apache License 2.0 | 6 votes |
def distribution_focal_loss(pred, label): r"""Distribution Focal Loss (DFL) is from `Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection <https://arxiv.org/abs/2006.04388>`_. Args: pred (torch.Tensor): Predicted general distribution of bounding boxes (before softmax) with shape (N, n+1), n is the max value of the integral set `{0, ..., n}` in paper. label (torch.Tensor): Target distance label for bounding boxes with shape (N,). Returns: torch.Tensor: Loss tensor with shape (N,). """ dis_left = label.long() dis_right = dis_left + 1 weight_left = dis_right.float() - label weight_right = label - dis_left.float() loss = F.cross_entropy(pred, dis_left, reduction='none') * weight_left \ + F.cross_entropy(pred, dis_right, reduction='none') * weight_right return loss
Example #13
Source File: ssd_head.py From AerialDetection with Apache License 2.0 | 6 votes |
def loss_single(self, cls_score, bbox_pred, labels, label_weights, bbox_targets, bbox_weights, num_total_samples, cfg): loss_cls_all = F.cross_entropy( cls_score, labels, reduction='none') * label_weights pos_inds = (labels > 0).nonzero().view(-1) neg_inds = (labels == 0).nonzero().view(-1) num_pos_samples = pos_inds.size(0) num_neg_samples = cfg.neg_pos_ratio * num_pos_samples if num_neg_samples > neg_inds.size(0): num_neg_samples = neg_inds.size(0) topk_loss_cls_neg, _ = loss_cls_all[neg_inds].topk(num_neg_samples) loss_cls_pos = loss_cls_all[pos_inds].sum() loss_cls_neg = topk_loss_cls_neg.sum() loss_cls = (loss_cls_pos + loss_cls_neg) / num_total_samples loss_bbox = weighted_smoothl1( bbox_pred, bbox_targets, bbox_weights, beta=cfg.smoothl1_beta, avg_factor=num_total_samples) return loss_cls[None], loss_bbox
Example #14
Source File: train_ours.py From glc with Apache License 2.0 | 6 votes |
def test(): net.eval() loss_avg = 0.0 correct = 0 for batch_idx, (data, target) in enumerate(test_loader): data, target = V(data.cuda(), volatile=True),\ V(target.cuda(), volatile=True) # forward output = net(data) loss = F.cross_entropy(output, target) # accuracy pred = output.data.max(1)[1] correct += pred.eq(target.data).sum() # test loss average loss_avg += loss.data[0] state['test_loss'] = loss_avg / len(test_loader) state['test_accuracy'] = correct / len(test_loader.dataset) # Main loop
Example #15
Source File: loss.py From R2CNN.pytorch with MIT License | 6 votes |
def __call__(self, proposals, keypoint_logits): heatmaps = [] valid = [] for proposals_per_image in proposals: kp = proposals_per_image.get_field("keypoints") heatmaps_per_image, valid_per_image = project_keypoints_to_heatmap( kp, proposals_per_image, self.discretization_size ) heatmaps.append(heatmaps_per_image.view(-1)) valid.append(valid_per_image.view(-1)) keypoint_targets = cat(heatmaps, dim=0) valid = cat(valid, dim=0).to(dtype=torch.bool) valid = torch.nonzero(valid).squeeze(1) # torch.mean (in binary_cross_entropy_with_logits) does'nt # accept empty tensors, so handle it sepaartely if keypoint_targets.numel() == 0 or len(valid) == 0: return keypoint_logits.sum() * 0 N, K, H, W = keypoint_logits.shape keypoint_logits = keypoint_logits.view(N * K, H * W) keypoint_loss = F.cross_entropy(keypoint_logits[valid], keypoint_targets[valid]) return keypoint_loss
Example #16
Source File: train_ours_adjusted.py From glc with Apache License 2.0 | 6 votes |
def test(): net.eval() loss_avg = 0.0 correct = 0 for batch_idx, (data, target) in enumerate(test_loader): data, target = V(data.cuda(), volatile=True),\ V(target.cuda(), volatile=True) # forward output = net(data) loss = F.cross_entropy(output, target) # accuracy pred = output.data.max(1)[1] correct += pred.eq(target.data).sum() # test loss average loss_avg += loss.data[0] state['test_loss'] = loss_avg / len(test_loader) state['test_accuracy'] = correct / len(test_loader.dataset) # Main loop
Example #17
Source File: semantic_seg.py From seamseg with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __call__(self, sem_logits, sem): """Compute the semantic segmentation loss Parameters ---------- sem_logits : sequence of torch.Tensor A sequence of N tensors of segmentation logits with shapes C x H_i x W_i sem : sequence of torch.Tensor A sequence of N tensors of ground truth semantic segmentations with shapes H_i x W_i Returns ------- sem_loss : torch.Tensor A scalar tensor with the computed loss """ sem_loss = [] for sem_logits_i, sem_i in zip(sem_logits, sem): sem_loss_i = functional.cross_entropy( sem_logits_i.unsqueeze(0), sem_i.unsqueeze(0), ignore_index=self.ignore_index, reduction="none") sem_loss_i = sem_loss_i.view(-1) if self.ohem is not None and self.ohem != 1: top_k = int(ceil(sem_loss_i.numel() * self.ohem)) if top_k != sem_loss_i.numel(): sem_loss_i, _ = sem_loss_i.topk(top_k) sem_loss.append(sem_loss_i.mean()) return sum(sem_loss) / len(sem_logits)
Example #18
Source File: train_forward.py From glc with Apache License 2.0 | 5 votes |
def train(no_correction=True, C_hat_transpose=None): net.train() # enter train mode loss_avg = 0.0 for batch_idx, (data, target) in enumerate(train_loader): data, target = torch.autograd.Variable(data.cuda()), torch.autograd.Variable(target.cuda()) # forward output = net(data) # backward optimizer.zero_grad() if no_correction: loss = F.cross_entropy(output, target) else: pre1 = C_hat_transpose[torch.cuda.LongTensor(target.data)] pre2 = torch.mul(F.softmax(output), pre1) loss = -(torch.log(pre2.sum(1))).mean() loss.backward() optimizer.step() # exponential moving average loss_avg = loss_avg * 0.2 + loss.data[0] * 0.8 if args.nosgdr is False: # Use a cyclic learning rate dt = math.pi/float(args.epochs) state['tt'] += float(dt)/(len(train_loader.dataset)/float(args.batch_size)) if state['tt'] >= math.pi - 0.05: state['tt'] = math.pi - 0.05 curT = math.pi/2.0 + state['tt'] new_lr = args.learning_rate * (1.0 + math.sin(curT))/2.0 # lr_min = 0, lr_max = lr state['learning_rate'] = new_lr for param_group in optimizer.param_groups: param_group['lr'] = state['learning_rate'] state['train_loss'] = loss_avg # test function (forward only)
Example #19
Source File: train_ideal.py From glc with Apache License 2.0 | 5 votes |
def train_phase1(): net.train() # enter train mode loss_avg = 0.0 for batch_idx, (data, target) in enumerate(train_silver_loader): data, target = V(data.cuda()), V(target.cuda()) # forward output = net(data) # backward optimizer.zero_grad() loss = F.cross_entropy(output, target) loss.backward() optimizer.step() # exponential moving average loss_avg = loss_avg * 0.8 + loss.data[0] * 0.2 if args.nosgdr is False: # Use a cyclic learning rate dt = math.pi/float(args.epochs) state['tt'] += float(dt)/(len(train_silver_loader.dataset)/float(args.batch_size)) if state['tt'] >= math.pi - 0.05: state['tt'] = math.pi - 0.05 curT = math.pi/2.0 + state['tt'] new_lr = args.learning_rate * (1.0 + math.sin(curT))/2.0 # lr_min = 0, lr_max = lr state['learning_rate'] = new_lr for param_group in optimizer.param_groups: param_group['lr'] = state['learning_rate'] state['train_loss'] = loss_avg # test function (forward only)
Example #20
Source File: loss.py From Parsing-R-CNN with MIT License | 5 votes |
def __call__(self, parsing_logits): parsing_targets = [proposals_per_img.get_field("parsing_targets") for proposals_per_img in self.positive_proposals] parsing_targets = cat(parsing_targets, dim=0) if parsing_targets.numel() == 0: return parsing_logits.sum() * 0 parsing_loss = F.cross_entropy( parsing_logits, parsing_targets, reduction="mean" ) parsing_loss *= cfg.PRCNN.LOSS_WEIGHT return parsing_loss
Example #21
Source File: __init__.py From yolo2-pytorch with GNU Lesser General Public License v3.0 | 5 votes |
def loss(anchors, data, pred, threshold): iou = pred['iou'] device_id = iou.get_device() if torch.cuda.is_available() else None rows, cols = pred['feature'].size()[-2:] iou_matrix, _iou, _, _data = iou_match(pred['yx_min'].data, pred['yx_max'].data, data) anchors = utils.ensure_device(anchors, device_id) positive = fit_positive(rows, cols, *(data[key] for key in 'yx_min, yx_max'.split(', ')), anchors) negative = ~positive & (_iou < threshold) _center_offset, _size_norm = fill_norm(*(_data[key] for key in 'yx_min, yx_max'.split(', ')), anchors) positive, negative, _iou, _center_offset, _size_norm, _cls = (torch.autograd.Variable(t) for t in (positive, negative, _iou, _center_offset, _size_norm, _data['cls'])) _positive = torch.unsqueeze(positive, -1) loss = {} # iou loss['foreground'] = F.mse_loss(iou[positive], _iou[positive], size_average=False) loss['background'] = torch.sum(square(iou[negative])) # bbox loss['center'] = F.mse_loss(pred['center_offset'][_positive], _center_offset[_positive], size_average=False) loss['size'] = F.mse_loss(pred['size_norm'][_positive], _size_norm[_positive], size_average=False) # cls if 'logits' in pred: logits = pred['logits'] if len(_cls.size()) > 3: loss['cls'] = F.mse_loss(F.softmax(logits, -1)[_positive], _cls[_positive], size_average=False) else: loss['cls'] = F.cross_entropy(logits[_positive].view(-1, logits.size(-1)), _cls[positive].view(-1)) # normalize cnt = float(np.multiply.reduce(positive.size())) for key in loss: loss[key] /= cnt return loss, dict(iou=_iou, data=_data, positive=positive, negative=negative)
Example #22
Source File: LSTM.py From Action-Recognition with MIT License | 5 votes |
def train(model, num_epoch, num_iter, lr=1e-3,rec_interval=2, disp_interval=10): optimizer = optim.Adam(model.parameters(), lr) loss_values = [] rec_step = 0 for eph in range(num_epoch): print('epoch {} starting ...'.format(eph)) avg_loss = 0 n_samples = 0 randpermed = torch.randperm(trainingData.size()[0])[:num_iter] for i in range(num_iter): model.hidden = (model.hidden[0].detach(), model.hidden[1].detach()) model.zero_grad() j = randpermed[i] X,Y = trainingData[j,:,:,:].view(300,1,75),labels[j,:] #print(X.size()) n_samples += len(X) X = autograd.Variable(X) #print(X) Y = autograd.Variable(Y.view(1)) y_hat = model(X) loss = F.cross_entropy(y_hat, Y) avg_loss += loss.data[0] if i % disp_interval == 0: print('epoch: %d iterations: %d loss :%g' % (eph, i, loss.data[0])) if rec_step%rec_interval==0: loss_values.append(loss.data[0]) loss.backward() optimizer.step() rec_step += 1 avg_loss /= n_samples #evaluating model accuracy #TrainAcc() print('epoch: {} <====train track===> avg_loss: {} \n'.format(eph, avg_loss)) return loss_values #l = train(model0, 10, 100, 2, 20)
Example #23
Source File: basicLSTM.py From Action-Recognition with MIT License | 5 votes |
def train(model, num_epoch, batchSize = 5, lr=1e-3,rec_interval=50, disp_interval=25): global data, labels optimizer = optim.Adam(model.parameters(), lr) loss_values = [] rec_step = 0 for eph in range(num_epoch): print('epoch {} starting ...'.format(eph)) avg_loss = 0 n_samples = 0 num_iter = len(data)//batchSize randpermed = torch.randperm(len(data)) for i in range(num_iter): model.hidden = (model.hidden[0].detach(), model.hidden[1].detach()) model.zero_grad() for k in range(batchSize): j = randpermed[i*batchSize + k] X= data[j].view(data[j].size()[0],1,75) Y = torch.LongTensor(1) Y[0]=labels[j] #print(X.size()) n_samples += len(X) X = autograd.Variable(X) #print(X) Y = autograd.Variable(Y) y_hat = model(X) loss = F.cross_entropy(y_hat, Y) avg_loss += loss.data[0] if rec_step%rec_interval==0: loss_values.append(loss.data[0]) loss.backward(retain_graph = True) rec_step += 1 optimizer.step() if i % disp_interval == 0: print('epoch: %d iterations: %d loss :%g' % (eph, i, loss.data[0])) avg_loss /= n_samples #evaluating model accuracy #TrainAcc() print('epoch: {} <====train track===> avg_loss: {} \n'.format(eph, avg_loss)) return loss_values
Example #24
Source File: train_ours_adjusted.py From glc with Apache License 2.0 | 5 votes |
def train_phase1(): net.train() # enter train mode loss_avg = 0.0 for batch_idx, (data, target) in enumerate(train_silver_loader): data, target = V(data.cuda()), V(target.cuda()) # forward output = net(data) # backward optimizer.zero_grad() loss = F.cross_entropy(output, target) loss.backward() optimizer.step() # exponential moving average loss_avg = loss_avg * 0.8 + loss.data[0] * 0.2 if args.nosgdr is False: # Use a cyclic learning rate dt = math.pi/float(args.epochs) state['tt'] += float(dt)/(len(train_silver_loader.dataset)/float(args.batch_size)) if state['tt'] >= math.pi - 0.05: state['tt'] = math.pi - 0.05 curT = math.pi/2.0 + state['tt'] new_lr = args.learning_rate * (1.0 + math.sin(curT))/2.0 # lr_min = 0, lr_max = lr state['learning_rate'] = new_lr for param_group in optimizer.param_groups: param_group['lr'] = state['learning_rate'] state['train_loss'] = loss_avg # test function (forward only)
Example #25
Source File: LSTM.py From Action-Recognition with MIT License | 5 votes |
def train(model, num_epoch, num_iter, lr=1e-3,rec_interval=2, disp_interval=10): optimizer = optim.Adam(model.parameters(), lr) loss_values = [] rec_step = 0 for eph in range(num_epoch): print('epoch {} starting ...'.format(eph)) avg_loss = 0 n_samples = 0 randpermed = torch.randperm(trainingData.size()[0])[:num_iter] for i in range(num_iter): model.hidden = (model.hidden[0].detach(), model.hidden[1].detach()) model.zero_grad() j = randpermed[i] X,Y = trainingData[j,:,:,:].view(300,1,75),labels[j,:] #print(X.size()) n_samples += len(X) X = autograd.Variable(X) #print(X) Y = autograd.Variable(Y.view(1)) y_hat = model(X) loss = F.cross_entropy(y_hat, Y) avg_loss += loss.data[0] if i % disp_interval == 0: print('epoch: %d iterations: %d loss :%g' % (eph, i, loss.data[0])) if rec_step%rec_interval==0: loss_values.append(loss.data[0]) loss.backward() optimizer.step() rec_step += 1 avg_loss /= n_samples #evaluating model accuracy #TrainAcc() print('epoch: {} <====train track===> avg_loss: {} \n'.format(eph, avg_loss)) return loss_values #l = train(model0, 10, 100, 2, 20)
Example #26
Source File: losses.py From kaggle-aptos2019-blindness-detection with MIT License | 5 votes |
def forward(self, output, target): cross_entropy = F.cross_entropy(output, target) cross_entropy_log = torch.log(cross_entropy) logpt = - F.cross_entropy(output, target) pt = torch.exp(logpt) focal_loss = -((1 - pt) ** self.focusing_param) * logpt balanced_focal_loss = self.balance_param * focal_loss return balanced_focal_loss
Example #27
Source File: cross_entropy.py From MobileNetV3-pytorch with MIT License | 5 votes |
def forward(self, input, target): return cross_entropy(input, target, self.weight, self.ignore_index, self.reduction)
Example #28
Source File: lovasz_losses.py From ext_portrait_segmentation with MIT License | 5 votes |
def xloss(logits, labels, ignore=None): """ Cross entropy loss """ return F.cross_entropy(logits, Variable(labels), ignore_index=255) # --------------------------- HELPER FUNCTIONS ---------------------------
Example #29
Source File: loss.py From PLARD with MIT License | 5 votes |
def cross_entropy2d(input, target, weight=None, reduction='elementwise_mean'): n, c, h, w = input.size() input = input.transpose(1, 2).transpose(2, 3).contiguous().view(-1, c) target = target.view(-1) loss = F.cross_entropy(input, target, weight=weight, reduction=reduction, ignore_index=255) return loss
Example #30
Source File: metrics.py From pytorch-UNet with MIT License | 5 votes |
def forward(self, y_input, y_target): y_input = torch.log(y_input + EPSILON) return cross_entropy(y_input, y_target, weight=self.weight, ignore_index=self.ignore_index)