Python torch.mv() Examples
The following are 30
code examples of torch.mv().
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: WKPooling.py From sentence-transformers with Apache License 2.0 | 6 votes |
def unify_sentence(self, sentence_feature, one_sentence_embedding): """ Unify Sentence By Token Importance """ sent_len = one_sentence_embedding.size()[0] var_token = torch.zeros(sent_len, device=one_sentence_embedding.device) for token_index in range(sent_len): token_feature = sentence_feature[:, token_index, :] sim_map = self.cosine_similarity_torch(token_feature) var_token[token_index] = torch.var(sim_map.diagonal(-1)) var_token = var_token / torch.sum(var_token) sentence_embedding = torch.mv(one_sentence_embedding.t(), var_token) return sentence_embedding
Example #2
Source File: test_fused.py From sparse-structured-attention with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _fused_prox_jacobian(y_hat, dout=None): """reference naive implementation: construct the jacobian""" dim = y_hat.shape[0] groups = torch.zeros(dim) J = torch.zeros(dim, dim) current_group = 0 for i in range(1, dim): if y_hat[i] == y_hat[i - 1]: groups[i] = groups[i - 1] else: current_group += 1 groups[i] = current_group for i in range(dim): for j in range(dim): if groups[i] == groups[j]: n_fused = (groups == groups[i]).sum() J[i, j] = 1 / n_fused.to(y_hat.dtype) if dout is not None: return torch.mv(J, dout) else: return J
Example #3
Source File: spectralnorm.py From torchgan with MIT License | 6 votes |
def forward(self, *args): r"""Computes the output of the ``module`` and appies spectral normalization to the ``name`` attribute of the ``module``. Returns: The output of the ``module``. """ height = self.w_bar.data.shape[0] for _ in range(self.power_iterations): self.v.data = self._l2normalize( torch.mv(torch.t(self.w_bar.view(height, -1)), self.u) ) self.u.data = self._l2normalize( torch.mv(self.w_bar.view(height, -1), self.v) ) sigma = self.u.dot(self.w_bar.view(height, -1).mv(self.v)) setattr(self.module, self.name, self.w_bar / sigma.expand_as(self.w_bar)) return self.module.forward(*args)
Example #4
Source File: detest.py From torchdiffeq with MIT License | 6 votes |
def C3(): n = 10 A = torch.zeros(n, n) A.view(-1)[::n + 1] = -2 A.view(-1)[n::n + 1] = 1 A.view(-1)[1::n + 1] = 1 def diffeq(t, y): return torch.mv(A, y) def init(): y0 = torch.zeros(n) y0[0] = 1 return torch.tensor(0.), y0 return diffeq, init, None
Example #5
Source File: detest.py From torchdiffeq with MIT License | 6 votes |
def C4(): n = 51 A = torch.zeros(n, n) A.view(-1)[::n + 1] = -2 A.view(-1)[n::n + 1] = 1 A.view(-1)[1::n + 1] = 1 def diffeq(t, y): return torch.mv(A, y) def init(): y0 = torch.zeros(n) y0[0] = 1 return torch.tensor(0.), y0 return diffeq, init, None
Example #6
Source File: treelstm_utils.py From QANet-PyTorch with MIT License | 6 votes |
def dot_nd(query, candidates): """ Perform a dot product between a query and n-dimensional candidates. :param query: (Tensor) A vector to query, whose size is (query_dim,) :param candidates: (Tensor) A n-dimensional tensor to be multiplied by query, whose size is (d0, d1, ..., dn, query_dim) :returns: The result of the dot product, whose size is (d0, d1, ..., dn) """ cands_size = candidates.size() cands_flat = candidates.view(-1, cands_size[-1]) output_flat = torch.mv(cands_flat, query) output = output_flat.view(*cands_size[:-1]) return output
Example #7
Source File: basic.py From TreeEnc with MIT License | 6 votes |
def dot_nd(query, candidates): """ Perform a dot product between a query and n-dimensional candidates. Args: query (Variable): A vector to query, whose size is (query_dim,) candidates (Variable): A n-dimensional tensor to be multiplied by query, whose size is (d0, d1, ..., dn, query_dim) Returns: output: The result of the dot product, whose size is (d0, d1, ..., dn) """ cands_size = candidates.size() cands_flat = candidates.view(-1, cands_size[-1]) output_flat = torch.mv(cands_flat, query) output = output_flat.view(*cands_size[:-1]) return output
Example #8
Source File: basic.py From TreeEnc with MIT License | 6 votes |
def cos_nd(query, candidates): """ Perform cosine between a query and n-dimensional candidates. Args: query (Variable): A vector to query, whose size is (query_dim,) candidates (Variable): A n-dimensional tensor to be multiplied by query, whose size is (d0, d1, ..., dn, query_dim) Returns: output: The result of the cosine operator, whose size is (d0, d1, ..., dn) """ cands_size = candidates.size() cands_flat = candidates.view(-1, cands_size[-1]) output_flat = torch.mv(cands_flat, query) output = output_flat.view(*cands_size[:-1]) lengths = (torch.sum(candidates ** 2, dim=-1) + 1e-10) ** 0.5 lengths = lengths.contiguous().view(output.size()) output = output / lengths / ((torch.sum(query ** 2) + 1e-10) ** 0.5) return output
Example #9
Source File: Linear_custom.py From spatial-reasoning with MIT License | 6 votes |
def backward(self, grad_output): input, weight, bias = self.saved_tensors grad_input = grad_weight = grad_bias = None if self.needs_input_grad[0]: grad_output = grad_output.squeeze() grad_input = torch.mm(grad_output, weight) if self.needs_input_grad[1]: grad_weight = torch.mm(grad_output.t(), input) if bias is not None and self.needs_input_grad[2]: grad_bias = torch.mv(grad_output.t(), self.add_buffer) if bias is not None: return grad_input, grad_weight, grad_bias else: return grad_input, grad_weight
Example #10
Source File: test_oscar.py From sparse-structured-attention with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _oscar_prox_jacobian(y_star, dout=None): y_star = y_star.numpy() dim = y_star.shape[0] J = torch.zeros(dim, dim) _, inv, counts = np.unique(np.abs(y_star), return_inverse=True, return_counts=True) for i in range(dim): for j in range(dim): if (inv[i] == inv[j] and y_star[i] != 0): J[i, j] = (np.sign(y_star[i]) * np.sign(y_star[j]) / counts[inv[i]]) if dout is not None: return torch.mv(J, dout) else: return J
Example #11
Source File: flow.py From semi-supervised-pytorch with MIT License | 6 votes |
def forward(self, z): # Create uhat such that it is parallel to w uw = torch.dot(self.u, self.w) muw = -1 + F.softplus(uw) uhat = self.u + (muw - uw) * torch.transpose(self.w, 0, -1) / torch.sum(self.w ** 2) # Equation 21 - Transform z zwb = torch.mv(z, self.w) + self.b f_z = z + (uhat.view(1, -1) * F.tanh(zwb).view(-1, 1)) # Compute the Jacobian using the fact that # tanh(x) dx = 1 - tanh(x)**2 psi = (1 - F.tanh(zwb)**2).view(-1, 1) * self.w.view(1, -1) psi_u = torch.mv(psi, uhat) # Return the transformed output along # with log determninant of J logdet_jacobian = torch.log(torch.abs(1 + psi_u) + 1e-8) return f_z, logdet_jacobian
Example #12
Source File: spectral.py From structure_knowledge_distillation with BSD 2-Clause "Simplified" License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #13
Source File: optnet-single.py From optnet with Apache License 2.0 | 5 votes |
def prof_instance(nz, neq, nineq, nIter, cuda): L = np.tril(npr.uniform(0,1, (nz,nz))) + np.eye(nz,nz) G = npr.randn(nineq,nz) A = npr.randn(neq,nz) z0 = npr.randn(nz) s0 = np.ones(nineq) p = npr.randn(nz) p, L, G, A, z0, s0 = [torch.Tensor(x) for x in [p, L, G, A, z0, s0]] Q = torch.mm(L, L.t())+0.001*torch.eye(nz).type_as(L) if cuda: p, L, Q, G, A, z0, s0 = [x.cuda() for x in [p, L, Q, G, A, z0, s0]] af = adact.AdactFunction() start = time.time() # One-time cost for numpy conversion. p_np, L_np, G_np, A_np, z0_np, s0_np = [adact.toNp(v) for v in [p, L, G, A, z0, s0]] cp = time.time()-start for i in range(nIter): start = time.time() zhat, nu, lam = af.forward_single_np(p_np, L_np, G_np, A_np, z0_np, s0_np) cp += time.time()-start b = torch.mv(A, z0) if neq > 0 else None h = torch.mv(G, z0)+s0 L_Q, L_S, R = aip.pre_factor_kkt(Q, G, A, nineq, neq) pdipm = [] for i in range(nIter): start = time.time() zhat_ip, nu_ip, lam_ip = aip.forward_single(p, Q, G, A, b, h, L_Q, L_S, R) pdipm.append(time.time()-start) return cp, np.sum(pdipm)
Example #14
Source File: spectral_normalization.py From adversarial-object-removal with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") #v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): #v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) #u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) v = l2normalize(torch.mv(torch.t(w.view(height,-1)), u.detach())) u = l2normalize(torch.mv(w.view(height,-1), v)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #15
Source File: spectral_normalization_nondiff.py From pytorch-spectral-normalization-gan with MIT License | 5 votes |
def _update_u_v(self): if not self._made_params(): self._make_params() w = getattr(self.module, self.name) u = getattr(self.module, self.name + "_u") height = w.data.shape[0] for _ in range(self.power_iterations): v = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u)) u = l2normalize(torch.mv(w.view(height,-1).data, v)) setattr(self.module, self.name + "_u", u) w.data = w.data / torch.dot(u, torch.mv(w.view(height,-1).data, v))
Example #16
Source File: spectral_normalization.py From pytorch-spectral-normalization-gan with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #17
Source File: optnet-np.py From optnet with Apache License 2.0 | 5 votes |
def test_ip_forward(): p_t, Q_t, G_t, A_t, z0_t, s0_t = [torch.Tensor(x) for x in [p, Q, G, A, z0, s0]] b = torch.mv(A_t, z0_t) if neq > 0 else None h = torch.mv(G_t,z0_t)+s0_t L_Q, L_S, R = aip.pre_factor_kkt(Q_t, G_t, A_t) zhat_ip, nu_ip, lam_ip = aip.forward_single(p_t, Q_t, G_t, A_t, b, h, L_Q, L_S, R) # Unnecessary clones here because of a pytorch bug when calling numpy # on a tensor with a non-zero offset. npt.assert_allclose(zhat, zhat_ip.clone().numpy(), rtol=RTOL, atol=ATOL) if neq > 0: npt.assert_allclose(nu, nu_ip.clone().numpy(), rtol=RTOL, atol=ATOL) npt.assert_allclose(lam, lam_ip.clone().numpy(), rtol=RTOL, atol=ATOL)
Example #18
Source File: networks_pono.py From PONO with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #19
Source File: SpectralNormLayer.py From cortex with BSD 3-Clause "New" or "Revised" License | 5 votes |
def sn_weight(weight, u, height, n_power_iterations): weight.requires_grad_(False) for _ in range(n_power_iterations): v = l2normalize(torch.mv(weight.view(height, -1).t(), u)) u = l2normalize(torch.mv(weight.view(height, -1), v)) weight.requires_grad_(True) sigma = u.dot(weight.view(height, -1).mv(v)) return torch.div(weight, sigma), u
Example #20
Source File: baseline.py From pytorch-maml-rl with MIT License | 5 votes |
def forward(self, episodes): features = self._feature(episodes) values = torch.mv(features.view(-1, self.feature_size), self.weight) return values.view(features.shape[:2])
Example #21
Source File: layer.py From inpainting_gmcnn with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + '_u') v = getattr(self.module, self.name + '_v') w = getattr(self.module, self.name + '_bar') height = w.data.shape[0] for _ in range(self.power_iteration): v.data = l2normalize(torch.mv(torch.t(w.view(height, -1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height, -1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #22
Source File: ops.py From GCA-Matting with MIT License | 5 votes |
def _noupdate_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #23
Source File: spectral.py From RL-GAN-Net with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #24
Source File: spectral.py From RL-GAN-Net with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #25
Source File: spectral_normalization.py From UMNN with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, self.factor*w / sigma.expand_as(w))
Example #26
Source File: ops.py From vgan with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize( torch.mv(torch.t(w.view(height, -1).data), u.data)) u.data = l2normalize( torch.mv(w.view(height, -1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #27
Source File: model.py From srnn-pytorch with GNU General Public License v3.0 | 5 votes |
def forward(self, h_temporal, h_spatials): ''' Forward pass for the model params: h_temporal : Hidden state of the temporal edgeRNN h_spatials : Hidden states of all spatial edgeRNNs connected to the node. ''' # Number of spatial edges num_edges = h_spatials.size()[0] # Embed the temporal edgeRNN hidden state temporal_embed = self.temporal_edge_layer(h_temporal) temporal_embed = temporal_embed.squeeze(0) # Embed the spatial edgeRNN hidden states spatial_embed = self.spatial_edge_layer(h_spatials) # Dot based attention attn = torch.mv(spatial_embed, temporal_embed) # Variable length temperature = num_edges / np.sqrt(self.attention_size) attn = torch.mul(attn, temperature) # Softmax attn = torch.nn.functional.softmax(attn) # Compute weighted value weighted_value = torch.mv(torch.t(h_spatials), attn) return weighted_value, attn
Example #28
Source File: spectral.py From SMIT with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize( torch.mv(torch.t(w.view(height, -1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height, -1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #29
Source File: spectral_normalization.py From Adversarial-Autoencoder with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))
Example #30
Source File: spectral_norm.py From segan_pytorch with MIT License | 5 votes |
def _update_u_v(self): u = getattr(self.module, self.name + "_u") v = getattr(self.module, self.name + "_v") w = getattr(self.module, self.name + "_bar") height = w.data.shape[0] for _ in range(self.power_iterations): v.data = l2normalize(torch.mv(torch.t(w.view(height,-1).data), u.data)) u.data = l2normalize(torch.mv(w.view(height,-1).data, v.data)) # sigma = torch.dot(u.data, torch.mv(w.view(height,-1).data, v.data)) sigma = u.dot(w.view(height, -1).mv(v)) setattr(self.module, self.name, w / sigma.expand_as(w))