Python torch.renorm() Examples

The following are 3 code examples of torch.renorm(). 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 , or try the search function .
Example #1
 Source Project: lorentz-embeddings   Author: theSage21   File: lorentz.py    License: MIT License 5 votes
```def set_dim0(x):
x = torch.renorm(x, p=2, dim=0, maxnorm=1e2)  # otherwise leaves will explode
# NOTE: the paper does not mention the square part of the equation but if
# you try to derive it you get a square term in the equation
dim0 = torch.sqrt(1 + (x[:, 1:] ** 2).sum(dim=1))
x[:, 0] = dim0
return x

# ========================= models ```
Example #2
```def forward(self, input, offsets, ref=None):
'''

:param input:  a 1-dim tensor of indices
:param offset: a 1-dim tensor of offsets
:param ref: a 2-dim tensor of ref feats, typically the features of ads
:return:
'''
assert (ref is None and not self.atten) or (ref is not None and self.atten)
# add 1 dim for Embedding
input = input.view(1,-1)
# return 1, n_word, n_dim
embedding = self.embedder(input)
#print(embedding)
size = embedding.size()
# n_word, n_dim
embedding = embedding.view(size[1],size[2])
if self.atten:
size = embedding.size()
# replicate ref n_word, n_dim
ref = replicate(ref,offsets,size[0])
#print(ref)
# calculate the attention
#todo
diff = ref-embedding
feat_for_atten = torch.cat([embedding,diff,ref],dim=1)
atten = self.linear1(feat_for_atten)
atten = self.activation(atten)
atten = self.linear2(atten)
# n_word, 1
atten = self.sigmoid(atten)
# print(atten)
embedding = embedding * atten
#print(embedding)
# n_sample, n_dim
res = reduce(embedding,offsets,self.mode)
# following lines constrain the max norm of embedding.
size = res.size()
# n_sample, n_field, n_dim//n_field
res = res.view(size[0]*self.n_field,size[1]//self.n_field)
renorm_res = torch.renorm(res,p=self.norm_type,dim=0,maxnorm=self.max_norm)
renorm_res = renorm_res.contiguous()
# res = F.normalize(res,p=self.norm_type,dim=2)*self.max_norm
res = renorm_res.view(size[0],size[1])
return res ```
Example #3
 Source Project: kbqa-ar-smcnn   Author: quyingqi   File: utils.py    License: Apache License 2.0 4 votes
```def load_word2vec_format(filename, word_idx, binary=False, normalize=False,
encoding='utf8', unicode_errors='ignore'):
"""
refer to gensim
If you trained the C model using non-utf8 encoding for words, specify that
encoding in `encoding`.
:param filename :
:param word_idx :
:param binary   : a boolean indicating whether the data is in binary word2vec format.
:param normalize:
:param encoding :
:param unicode_errors: errors can be 'strict', 'replace' or 'ignore' and defaults to 'strict'.
"""
vocab = set()
print("loading word embedding from %s" % filename)
with open(filename, 'rb') as fin:
#        vocab_size, vector_size = map(int, header.split())  # throws for invalid file format
vocab_size = 1917494
vector_size = 300
word_matrix = torch.zeros(len(word_idx), vector_size)

if _word not in word_idx:
return
word_matrix[word_idx[_word]] = _weights

if binary:
binary_len = np.dtype(np.float32).itemsize * vector_size
for _ in range(vocab_size):
# mixed text and binary: read text first, then binary
word = []
while True:
if ch == b' ':
break
if ch != b'\n':  # ignore newlines in front of words (some binary files have)
word.append(ch)
word = to_unicode(b''.join(word), encoding=encoding, errors=unicode_errors)
weights = torch.from_numpy(np.fromstring(fin.read(binary_len), dtype=REAL))
else:
for line_no, line in enumerate(fin):
parts = to_unicode(line.rstrip(), encoding=encoding, errors=unicode_errors).split(" ")
if len(parts) != vector_size + 1:
raise ValueError("invalid vector on line %s (is this really the text format?)" % line_no)
word, weights = parts[0], list(map(float, parts[1:]))
weights = torch.Tensor(weights)