transformer-xl
transformer-xl copied to clipboard
what if mems is None?
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) .