transformer-xl icon indicating copy to clipboard operation
transformer-xl copied to clipboard

what if mems is None?

Open LindgeW opened this issue 5 years ago • 0 comments

mlen = mems[0].size(0) if mems is not None else 0 klen = mlen + qlen if self.same_length: all_ones = word_emb.new_ones(qlen, klen) mask_len = klen - self.mem_len if mask_len > 0: mask_shift_len = qlen - mask_len else: mask_shift_len = qlen dec_attn_mask = (torch.triu(all_ones, 1+mlen) + torch.tril(all_ones, -mask_shift_len)).byte()[:, :, None] # -1 else: dec_attn_mask = torch.triu( word_emb.new_ones(qlen, klen), diagonal=1+mlen).byte()[:,:,None]

what if mems is None? that is, mlen is zero. Actually, dec_attn_mask will be all-one matrix. My test demo shows that it seems to cause bad results in eval phase (same_length is True) .

LindgeW avatar Jan 16 '20 12:01 LindgeW