Python torch.full_like() Examples
The following are 30
code examples of torch.full_like().
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: train.py From NLP_Toolkit with Apache License 2.0 | 6 votes |
def batch_preprocess(batch, pad_idx, eos_idx, reverse=False): batch_pos, batch_neg = batch diff = batch_pos.size(1) - batch_neg.size(1) if diff < 0: pad = torch.full_like(batch_neg[:, :-diff], pad_idx) batch_pos = torch.cat((batch_pos, pad), 1) elif diff > 0: pad = torch.full_like(batch_pos[:, :diff], pad_idx) batch_neg = torch.cat((batch_neg, pad), 1) pos_styles = torch.ones_like(batch_pos[:, 0]) neg_styles = torch.zeros_like(batch_neg[:, 0]) if reverse: batch_pos, batch_neg = batch_neg, batch_pos pos_styles, neg_styles = neg_styles, pos_styles tokens = torch.cat((batch_pos, batch_neg), 0) lengths = get_lengths(tokens, eos_idx) styles = torch.cat((pos_styles, neg_styles), 0) return tokens, lengths, styles
Example #2
Source File: normalization_layers.py From cnaps with MIT License | 6 votes |
def forward(self, x): """ Normalize activations. :param x: input activations :return: normalized activations """ if self.training: # compute the pooled moments for the context and save off the moments and context size alpha = self.sigmoid(self.a * (x.size())[0] + self.b) # compute alpha with context size batch_mean, batch_var = self._compute_batch_moments(x) pooled_mean, pooled_var = self._compute_pooled_moments(x, alpha, batch_mean, batch_var, self._get_augment_moment_fn()) self.context_batch_mean = batch_mean self.context_batch_var = batch_var self.context_size = torch.full_like(self.context_size, x.size()[0]) else: # compute the pooled moments for the target alpha = self.sigmoid(self.a * self.context_size + self.b) # compute alpha with saved context size pooled_mean, pooled_var = self._compute_pooled_moments(x, alpha, self.context_batch_mean, self.context_batch_var, self._get_augment_moment_fn()) return self._normalize(x, pooled_mean, pooled_var) # normalize
Example #3
Source File: dummy_masked_lm.py From fairseq with MIT License | 6 votes |
def __init__(self, args, dictionary): super().__init__(args) self.dictionary = dictionary self.seed = args.seed # add mask token self.mask_idx = dictionary.add_symbol('<mask>') dictionary.pad_to_multiple_(8) # often faster if divisible by 8 mask_idx = 0 pad_idx = 1 seq = torch.arange(args.tokens_per_sample) + pad_idx + 1 mask = torch.arange(2, args.tokens_per_sample, 7) # ~15% src = seq.clone() src[mask] = mask_idx tgt = torch.full_like(seq, pad_idx) tgt[mask] = seq[mask] self.dummy_src = src self.dummy_tgt = tgt
Example #4
Source File: dummy_masked_lm.py From attn2d with MIT License | 6 votes |
def __init__(self, args, dictionary): super().__init__(args) self.dictionary = dictionary self.seed = args.seed # add mask token self.mask_idx = dictionary.add_symbol('<mask>') assert len(dictionary) % 8 == 0 mask_idx = 0 pad_idx = 1 seq = torch.arange(args.tokens_per_sample) + pad_idx + 1 mask = torch.arange(2, args.tokens_per_sample, 7) # ~15% src = seq.clone() src[mask] = mask_idx tgt = torch.full_like(seq, pad_idx) tgt[mask] = seq[mask] self.dummy_src = src self.dummy_tgt = tgt
Example #5
Source File: common.py From captum with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _tensorize_baseline( inputs: Tuple[Tensor, ...], baselines: Tuple[Union[int, float, Tensor], ...] ) -> Tuple[Tensor, ...]: def _tensorize_single_baseline(baseline, input): if isinstance(baseline, (int, float)): return torch.full_like(input, baseline) if input.shape[0] > baseline.shape[0] and baseline.shape[0] == 1: return torch.cat([baseline] * input.shape[0]) return baseline assert isinstance(inputs, tuple) and isinstance(baselines, tuple), ( "inputs and baselines must" "have tuple type but found baselines: {} and inputs: {}".format( type(baselines), type(inputs) ) ) return tuple( _tensorize_single_baseline(baseline, input) for baseline, input in zip(baselines, inputs) )
Example #6
Source File: bert.py From fastHan with Apache License 2.0 | 6 votes |
def drop_word(self, words): """ 按照设定随机将words设置为unknown_index。 :param torch.LongTensor words: batch_size x max_len :return: """ if self.word_dropout > 0 and self.training: with torch.no_grad(): if self._word_sep_index: # 不能drop sep sep_mask = words.eq(self._wordpiece_unk_index) mask = torch.full_like(words, fill_value=self.word_dropout, dtype=torch.float, device=words.device) mask = torch.bernoulli(mask).eq(1) # dropout_word越大,越多位置为1 pad_mask = words.ne(self._wordpiece_pad_index) mask = pad_mask.__and__(mask) # pad的位置不为unk words = words.masked_fill(mask, self._word_unk_index) if self._word_sep_index: words.masked_fill_(sep_mask, self._wordpiece_unk_index) return words
Example #7
Source File: test_analytic.py From botorch with MIT License | 6 votes |
def _get_model(self, dtype=torch.float): state_dict = { "mean_module.constant": torch.tensor([-0.0066]), "covar_module.raw_outputscale": torch.tensor(1.0143), "covar_module.base_kernel.raw_lengthscale": torch.tensor([[-0.99]]), "covar_module.base_kernel.lengthscale_prior.concentration": torch.tensor( 3.0 ), "covar_module.base_kernel.lengthscale_prior.rate": torch.tensor(6.0), "covar_module.outputscale_prior.concentration": torch.tensor(2.0), "covar_module.outputscale_prior.rate": torch.tensor(0.1500), } train_x = torch.linspace(0, 1, 10, device=self.device, dtype=dtype).unsqueeze( -1 ) train_y = torch.sin(train_x * (2 * math.pi)) noise = torch.tensor(NEI_NOISE, device=self.device, dtype=dtype) train_y += noise train_yvar = torch.full_like(train_y, 0.25 ** 2) model = FixedNoiseGP(train_X=train_x, train_Y=train_y, train_Yvar=train_yvar) model.load_state_dict(state_dict) model.to(train_x) model.eval() return model
Example #8
Source File: bert.py From fastHan with Apache License 2.0 | 6 votes |
def drop_word(self, words): """ 按照设定随机将words设置为unknown_index。 :param torch.LongTensor words: batch_size x max_len :return: """ if self.word_dropout > 0 and self.training: with torch.no_grad(): if self._word_sep_index: # 不能drop sep sep_mask = words.eq(self._word_sep_index) mask = torch.full_like(words, fill_value=self.word_dropout, dtype=torch.float, device=words.device) mask = torch.bernoulli(mask).eq(1) # dropout_word越大,越多位置为1 pad_mask = words.ne(0) mask = pad_mask.__and__(mask) # pad的位置不为unk words = words.masked_fill(mask, self._word_unk_index) if self._word_sep_index: words.masked_fill_(sep_mask, self._word_sep_index) return words
Example #9
Source File: roberta_embedding.py From fastNLP with Apache License 2.0 | 6 votes |
def drop_word(self, words): r""" 按照设定随机将words设置为unknown_index。 :param torch.LongTensor words: batch_size x max_len :return: """ if self.word_dropout > 0 and self.training: with torch.no_grad(): mask = torch.full_like(words, fill_value=self.word_dropout, dtype=torch.float, device=words.device) mask = torch.bernoulli(mask).eq(1) # dropout_word越大,越多位置为1 pad_mask = words.ne(self._word_pad_index) mask = pad_mask.__and__(mask) # pad的位置不为unk if self._word_sep_index!=-100: not_sep_mask = words.ne(self._word_sep_index) mask = mask.__and__(not_sep_mask) if self._word_cls_index!=-100: not_cls_mask = words.ne(self._word_cls_index) mask = mask.__and__(not_cls_mask) words = words.masked_fill(mask, self._word_unk_index) return words
Example #10
Source File: roberta_embedding.py From fastNLP with Apache License 2.0 | 6 votes |
def drop_word(self, words): r""" 按照设定随机将words设置为unknown_index。 :param torch.LongTensor words: batch_size x max_len :return: """ if self.word_dropout > 0 and self.training: with torch.no_grad(): not_sep_mask = words.ne(self._sep_index) not_cls_mask = words.ne(self._cls_index) replaceable_mask = not_sep_mask.__and__(not_cls_mask) mask = torch.full_like(words, fill_value=self.word_dropout, dtype=torch.float, device=words.device) mask = torch.bernoulli(mask).eq(1) # dropout_word越大,越多位置为1 pad_mask = words.ne(self._wordpiece_pad_index) mask = pad_mask.__and__(mask).__and__(replaceable_mask) # pad的位置不为unk words = words.masked_fill(mask, self._wordpiece_unk_index) return words
Example #11
Source File: decoder_helpers.py From texar-pytorch with Apache License 2.0 | 6 votes |
def next_inputs(self, embedding_fn: EmbeddingFn, time: int, outputs: torch.Tensor, sample_ids: torch.LongTensor) -> NextInputTuple: del outputs # unused by next_inputs_fn if self._use_finish: hard_ids = torch.argmax(sample_ids, dim=-1) finished = (hard_ids == self._end_token) else: finished = torch.zeros_like(self._start_tokens, dtype=torch_bool) if self._stop_gradient: sample_ids = sample_ids.detach() indices = torch.arange(sample_ids.size(-1), device=sample_ids.device) times = torch.full_like(indices, time + 1) embeddings = embedding_fn(indices, times) next_inputs = torch.matmul(sample_ids, embeddings) return (finished, next_inputs)
Example #12
Source File: bert_embedding.py From fastNLP with Apache License 2.0 | 6 votes |
def drop_word(self, words): r""" 按照设定随机将words设置为unknown_index。 :param torch.LongTensor words: batch_size x max_len :return: """ if self.word_dropout > 0 and self.training: with torch.no_grad(): mask = torch.full_like(words, fill_value=self.word_dropout, dtype=torch.float, device=words.device) mask = torch.bernoulli(mask).eq(1) # dropout_word越大,越多位置为1 pad_mask = words.ne(self._word_pad_index) mask = pad_mask.__and__(mask) # pad的位置不为unk if self._word_sep_index!=-100: not_sep_mask = words.ne(self._word_sep_index) mask = mask.__and__(not_sep_mask) if self._word_cls_index!=-100: not_cls_mask = words.ne(self._word_cls_index) mask = mask.__and__(not_cls_mask) words = words.masked_fill(mask, self._word_unk_index) return words
Example #13
Source File: discrete_sampler.py From ReAgent with BSD 3-Clause "New" or "Revised" License | 6 votes |
def sample_action(self, scores: torch.Tensor) -> rlt.ActorOutput: assert scores.dim() == 2, ( "scores dim is %d" % scores.dim() ) # batch_size x num_actions batch_size, num_actions = scores.shape # pyre-fixme[16]: `Tensor` has no attribute `argmax`. argmax = F.one_hot(scores.argmax(dim=1), num_actions).bool() rand_prob = self.epsilon / num_actions p = torch.full_like(rand_prob, scores) greedy_prob = 1 - self.epsilon + rand_prob p[argmax] = greedy_prob m = torch.distributions.Categorical(probs=p) raw_action = m.sample() action = F.one_hot(raw_action, num_actions) assert action.shape == (batch_size, num_actions) log_prob = m.log_prob(raw_action) assert log_prob.shape == (batch_size,) return rlt.ActorOutput(action=action, log_prob=log_prob)
Example #14
Source File: test_smoothed_box_prior.py From gpytorch with MIT License | 6 votes |
def test_smoothed_box_prior_log_prob(self, cuda=False): device = torch.device("cuda") if cuda else torch.device("cpu") a, b = torch.zeros(2, device=device), torch.ones(2, device=device) sigma = 0.1 prior = SmoothedBoxPrior(a, b, sigma) self.assertTrue(torch.equal(prior.a, a)) self.assertTrue(torch.equal(prior.b, b)) self.assertTrue(torch.equal(prior.sigma, torch.full_like(prior.a, sigma))) self.assertTrue(torch.all(approx_equal(prior._M, torch.full_like(prior.a, 1.6073)))) t = torch.tensor([0.5, 1.1], device=device) self.assertAlmostEqual(prior.log_prob(t).item(), -0.9473, places=4) t = torch.tensor([[0.5, 1.1], [0.1, 0.25]], device=device) log_prob_expected = torch.tensor([-0.947347, -0.447347], device=t.device) self.assertTrue(torch.all(approx_equal(prior.log_prob(t), log_prob_expected))) with self.assertRaises(RuntimeError): prior.log_prob(torch.zeros(3, device=device))
Example #15
Source File: test_scatter.py From pytorch_scatter with MIT License | 6 votes |
def test_out(test, reduce, dtype, device): src = tensor(test['src'], dtype, device) index = tensor(test['index'], torch.long, device) dim = test['dim'] expected = tensor(test[reduce], dtype, device) out = torch.full_like(expected, -2) getattr(torch_scatter, 'scatter_' + reduce)(src, index, dim, out) if reduce == 'sum' or reduce == 'add': expected = expected - 2 elif reduce == 'mean': expected = out # We can not really test this here. elif reduce == 'min': expected = expected.fill_(-2) elif reduce == 'max': expected[expected == 0] = -2 else: raise ValueError assert torch.all(out == expected)
Example #16
Source File: modeling_utils.py From albert_pytorch with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, cls_index=None): """ hidden_states: float Tensor in shape [bsz, seq_len, hidden_size], the hidden-states of the last layer. cls_index: [optional] position of the classification token if summary_type == 'cls_index', shape (bsz,) or more generally (bsz, ...) where ... are optional leading dimensions of hidden_states. if summary_type == 'cls_index' and cls_index is None: we take the last token of the sequence as classification token """ if self.summary_type == 'last': output = hidden_states[:, -1] elif self.summary_type == 'first': output = hidden_states[:, 0] elif self.summary_type == 'mean': output = hidden_states.mean(dim=1) elif self.summary_type == 'cls_index': if cls_index is None: cls_index = torch.full_like(hidden_states[..., :1, :], hidden_states.shape[-2]-1, dtype=torch.long) else: cls_index = cls_index.unsqueeze(-1).unsqueeze(-1) cls_index = cls_index.expand((-1,) * (cls_index.dim()-1) + (hidden_states.size(-1),)) # shape of cls_index: (bsz, XX, 1, hidden_size) where XX are optional leading dim of hidden_states output = hidden_states.gather(-2, cls_index).squeeze(-2) # shape (bsz, XX, hidden_size) elif self.summary_type == 'attn': raise NotImplementedError output = self.first_dropout(output) output = self.summary(output) output = self.activation(output) output = self.last_dropout(output) return output
Example #17
Source File: decoder_helpers.py From texar-pytorch with Apache License 2.0 | 5 votes |
def next_inputs(self, embedding_fn: EmbeddingFn, time: int, outputs: torch.Tensor, sample_ids: torch.LongTensor) -> NextInputTuple: del outputs # unused by next_inputs_fn finished = (sample_ids == self._end_token) all_finished = torch.all(finished).item() times = torch.full_like(sample_ids, time + 1) embeddings = embedding_fn(sample_ids, times) next_inputs = (embeddings if not all_finished else self._start_inputs) return (finished, next_inputs)
Example #18
Source File: decoder_helpers.py From texar-pytorch with Apache License 2.0 | 5 votes |
def _top_k_logits(logits: torch.Tensor, k: int) -> torch.Tensor: r"""Adapted from https://github.com/openai/gpt-2/blob/master/src/sample.py#L63-L77 """ if k == 0: # no truncation return logits values, _ = torch.topk(logits, k=k) min_values: torch.Tensor = values[:, -1].unsqueeze(-1) return torch.where( logits < min_values, torch.full_like(logits, float('-inf')), logits)
Example #19
Source File: atom.py From pytracking with GNU General Public License v3.0 | 5 votes |
def init_iou_net(self): # Setup IoU net self.iou_predictor = self.params.features.get_unique_attribute('iou_predictor') for p in self.iou_predictor.parameters(): p.requires_grad = False # Get target boxes for the different augmentations self.iou_target_box = self.get_iounet_box(self.pos, self.target_sz, self.pos.round(), self.target_scale) target_boxes = TensorList() if self.params.iounet_augmentation: for T in self.transforms: if not isinstance(T, (augmentation.Identity, augmentation.Translation, augmentation.FlipHorizontal, augmentation.FlipVertical, augmentation.Blur)): break target_boxes.append(self.iou_target_box + torch.Tensor([T.shift[1], T.shift[0], 0, 0])) else: target_boxes.append(self.iou_target_box.clone()) target_boxes = torch.cat(target_boxes.view(1,4), 0).to(self.params.device) # Get iou features iou_backbone_features = self.get_iou_backbone_features() # Remove other augmentations such as rotation iou_backbone_features = TensorList([x[:target_boxes.shape[0],...] for x in iou_backbone_features]) # Extract target feat with torch.no_grad(): target_feat = self.iou_predictor.get_modulation(iou_backbone_features, target_boxes) self.target_feat = TensorList([x.detach().mean(0) for x in target_feat]) if self.params.get('iounet_not_use_reference', False): self.target_feat = TensorList([torch.full_like(tf, tf.norm() / tf.numel()) for tf in self.target_feat])
Example #20
Source File: modeling_utils.py From HPSG-Neural-Parser with MIT License | 5 votes |
def forward(self, hidden_states, cls_index=None): """ hidden_states: float Tensor in shape [bsz, seq_len, hidden_size], the hidden-states of the last layer. cls_index: [optional] position of the classification token if summary_type == 'cls_index', shape (bsz,) or more generally (bsz, ...) where ... are optional leading dimensions of hidden_states. if summary_type == 'cls_index' and cls_index is None: we take the last token of the sequence as classification token """ if self.summary_type == 'last': output = hidden_states[:, -1] elif self.summary_type == 'first': output = hidden_states[:, 0] elif self.summary_type == 'mean': output = hidden_states.mean(dim=1) elif self.summary_type == 'cls_index': if cls_index is None: cls_index = torch.full_like(hidden_states[..., :1, :], hidden_states.shape[-2]-1, dtype=torch.long) else: cls_index = cls_index.unsqueeze(-1).unsqueeze(-1) cls_index = cls_index.expand((-1,) * (cls_index.dim()-1) + (hidden_states.size(-1),)) # shape of cls_index: (bsz, XX, 1, hidden_size) where XX are optional leading dim of hidden_states output = hidden_states.gather(-2, cls_index).squeeze(-2) # shape (bsz, XX, hidden_size) elif self.summary_type == 'attn': raise NotImplementedError output = self.first_dropout(output) output = self.summary(output) output = self.activation(output) output = self.last_dropout(output) return output
Example #21
Source File: losses.py From sg2im with Apache License 2.0 | 5 votes |
def _make_targets(x, y): """ Inputs: - x: PyTorch Tensor - y: Python scalar Outputs: - out: PyTorch Variable with same shape and dtype as x, but filled with y """ return torch.full_like(x, y)
Example #22
Source File: utils.py From oft with MIT License | 5 votes |
def make_grid(grid_size, grid_offset, grid_res): """ Constructs an array representing the corners of an orthographic grid """ depth, width = grid_size xoff, yoff, zoff = grid_offset xcoords = torch.arange(0., width, grid_res) + xoff zcoords = torch.arange(0., depth, grid_res) + zoff zz, xx = torch.meshgrid(zcoords, xcoords) return torch.stack([xx, torch.full_like(xx, yoff), zz], dim=-1)
Example #23
Source File: test_segment.py From pytorch_scatter with MIT License | 5 votes |
def test_out(test, reduce, dtype, device): src = tensor(test['src'], dtype, device) index = tensor(test['index'], torch.long, device) indptr = tensor(test['indptr'], torch.long, device) expected = tensor(test[reduce], dtype, device) out = torch.full_like(expected, -2) getattr(torch_scatter, 'segment_' + reduce + '_csr')(src, indptr, out) assert torch.all(out == expected) out.fill_(-2) getattr(torch_scatter, 'segment_' + reduce + '_coo')(src, index, out) if reduce == 'sum' or reduce == 'add': expected = expected - 2 elif reduce == 'mean': expected = out # We can not really test this here. elif reduce == 'min': expected = expected.fill_(-2) elif reduce == 'max': expected[expected == 0] = -2 else: raise ValueError assert torch.all(out == expected)
Example #24
Source File: bert_vocab.py From OpenNIR with MIT License | 5 votes |
def _forward(self, in_toks, lens=None, seg_id=0): if lens is None: # if no lens provided, assume all are full length, I guess... not great lens = torch.full_like(in_toks[:, 0], in_toks.shape[1]) maxlen = self.bert.config.max_position_embeddings MAX_TOK_LEN = maxlen - 2 # -2 for [CLS] and [SEP] toks, _ = util.subbatch(in_toks, MAX_TOK_LEN) mask = util.lens2mask(lens, in_toks.shape[1]) mask, _ = util.subbatch(mask, MAX_TOK_LEN) toks = torch.cat([torch.full_like(toks[:, :1], self.CLS), toks], dim=1) toks = torch.cat([toks, torch.full_like(toks[:, :1], self.SEP)], dim=1) ONES = torch.ones_like(mask[:, :1]) mask = torch.cat([ONES, mask, ONES], dim=1) segment_ids = torch.full_like(toks, seg_id) # Change -1 padding to 0-padding (will be masked) toks = torch.where(toks == -1, torch.zeros_like(toks), toks) result = self.bert(toks, segment_ids, mask) if not self.vocab.config['last_layer']: cls_result = [r[:, 0] for r in result] result = [r[:, 1:-1, :] for r in result] result = [util.un_subbatch(r, in_toks, MAX_TOK_LEN) for r in result] else: BATCH = in_toks.shape[0] result = result[-1] cls_output = result[:, 0] cls_result = [] for i in range(cls_output.shape[0] // BATCH): cls_result.append(cls_output[i*BATCH:(i+1)*BATCH]) cls_result = torch.stack(cls_result, dim=2).mean(dim=2) result = result[:, 1:-1, :] result = util.un_subbatch(result, in_toks, MAX_TOK_LEN) return result, cls_result
Example #25
Source File: modeling_utils.py From CCF-BDCI-Sentiment-Analysis-Baseline with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, cls_index=None): """ hidden_states: float Tensor in shape [bsz, seq_len, hidden_size], the hidden-states of the last layer. cls_index: [optional] position of the classification token if summary_type == 'cls_index', shape (bsz,) or more generally (bsz, ...) where ... are optional leading dimensions of hidden_states. if summary_type == 'cls_index' and cls_index is None: we take the last token of the sequence as classification token """ if self.summary_type == 'last': output = hidden_states[:, -1] elif self.summary_type == 'first': output = hidden_states[:, 0] elif self.summary_type == 'mean': output = hidden_states.mean(dim=1) elif self.summary_type == 'cls_index': if cls_index is None: cls_index = torch.full_like(hidden_states[..., :1, :], hidden_states.shape[-2]-1, dtype=torch.long) else: cls_index = cls_index.unsqueeze(-1).unsqueeze(-1) cls_index = cls_index.expand((-1,) * (cls_index.dim()-1) + (hidden_states.size(-1),)) # shape of cls_index: (bsz, XX, 1, hidden_size) where XX are optional leading dim of hidden_states output = hidden_states.gather(-2, cls_index).squeeze(-2) # shape (bsz, XX, hidden_size) elif self.summary_type == 'attn': raise NotImplementedError output = self.first_dropout(output) output = self.summary(output) output = self.activation(output) output = self.last_dropout(output) return output
Example #26
Source File: test_multitask_classifier.py From snorkel with Apache License 2.0 | 5 votes |
def test_empty_batch(self): dataset = create_dataloader("task1", shuffle=False).dataset dataset.Y_dict["task1"] = torch.full_like(dataset.Y_dict["task1"], -1) model = MultitaskClassifier([self.task1]) loss_dict, count_dict = model.calculate_loss(dataset.X_dict, dataset.Y_dict) self.assertFalse(loss_dict) self.assertFalse(count_dict)
Example #27
Source File: loss.py From pvcnn with MIT License | 5 votes |
def huber_loss(error, delta): abs_error = torch.abs(error) quadratic = torch.min(abs_error, torch.full_like(abs_error, fill_value=delta)) losses = 0.5 * (quadratic ** 2) + delta * (abs_error - quadratic) return torch.mean(losses)
Example #28
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, cls_index=None): """ hidden_states: float Tensor in shape [bsz, seq_len, hidden_size], the hidden-states of the last layer. cls_index: [optional] position of the classification token if summary_type == 'cls_index', shape (bsz,) or more generally (bsz, ...) where ... are optional leading dimensions of hidden_states. if summary_type == 'cls_index' and cls_index is None: we take the last token of the sequence as classification token """ if self.summary_type == 'last': output = hidden_states[:, -1] elif self.summary_type == 'first': output = hidden_states[:, 0] elif self.summary_type == 'mean': output = hidden_states.mean(dim=1) elif self.summary_type == 'cls_index': if cls_index is None: cls_index = torch.full_like(hidden_states[..., :1, :], hidden_states.shape[-2]-1, dtype=torch.long) else: cls_index = cls_index.unsqueeze(-1).unsqueeze(-1) cls_index = cls_index.expand((-1,) * (cls_index.dim()-1) + (hidden_states.size(-1),)) # shape of cls_index: (bsz, XX, 1, hidden_size) where XX are optional leading dim of hidden_states output = hidden_states.gather(-2, cls_index).squeeze(-2) # shape (bsz, XX, hidden_size) elif self.summary_type == 'attn': raise NotImplementedError output = self.first_dropout(output) output = self.summary(output) output = self.activation(output) output = self.last_dropout(output) return output
Example #29
Source File: inference.py From Parsing-R-CNN with MIT License | 5 votes |
def _filter_boxes(self, bbox, last, gt): """Only keep boxes with positive height and width, and not-gt. """ last_bbox = last.bbox gt_bbox = gt.bbox ws = bbox[:, 2] - bbox[:, 0] + 1 hs = bbox[:, 3] - bbox[:, 1] + 1 for i in range(gt_bbox.shape[0]): last_bbox = torch.where(last_bbox == gt_bbox[i], torch.full_like(last_bbox, -1), last_bbox) s = sum([last_bbox[:, 0], last_bbox[:, 1], last_bbox[:, 2], last_bbox[:, 3]]) keep = np.where((ws.cpu() > 0) & (hs.cpu() > 0) & (s.cpu() > 0))[0] return keep
Example #30
Source File: modeling_utils.py From NLP_Toolkit with Apache License 2.0 | 5 votes |
def forward(self, hidden_states, cls_index=None): """ hidden_states: float Tensor in shape [bsz, ..., seq_len, hidden_size], the hidden-states of the last layer. cls_index: [optional] position of the classification token if summary_type == 'cls_index', shape (bsz,) or more generally (bsz, ...) where ... are optional leading dimensions of hidden_states. if summary_type == 'cls_index' and cls_index is None: we take the last token of the sequence as classification token """ if self.summary_type == "last": output = hidden_states[:, -1] elif self.summary_type == "first": output = hidden_states[:, 0] elif self.summary_type == "mean": output = hidden_states.mean(dim=1) elif self.summary_type == "cls_index": if cls_index is None: cls_index = torch.full_like(hidden_states[..., :1, :], hidden_states.shape[-2] - 1, dtype=torch.long) else: cls_index = cls_index.unsqueeze(-1).unsqueeze(-1) cls_index = cls_index.expand((-1,) * (cls_index.dim() - 1) + (hidden_states.size(-1),)) # shape of cls_index: (bsz, XX, 1, hidden_size) where XX are optional leading dim of hidden_states output = hidden_states.gather(-2, cls_index).squeeze(-2) # shape (bsz, XX, hidden_size) elif self.summary_type == "attn": raise NotImplementedError output = self.first_dropout(output) output = self.summary(output) output = self.activation(output) output = self.last_dropout(output) return output