机器翻译及相关技术:
解决RNN固定长度输出问题
翻译机制编码器和解码器机制
#编码器和解码器是分别对应输入和输出序列的两个神经网络,我们通常会在输入序列和输出序列后面附上一个特殊字符''
#(end of sequence)表示序列的终止,在测试模型时,一旦输出''就终止当前的序列输出
x=torch.tensor([[[1,1,1],
[1,1,1]],
[[1,1,1],
[1,1,1],
[1,1,1]]])
mask=tensor([[True,False,False],
[True,True,False]])
x[~mask]=-1
~mask=([[False,True,True],
[False,False,True]])
#里面为True的序号为
#(0,1),(0,2),(1,2)
#所以x中的第三维扩展后(0,1,:),(0,2,:),(1,2,:)处的值会被选中并赋值为-1
print(x)
tensor([[[1,1,1],
[-1,-1,-1],
[-1,-1,-1]],
[[1,1,1],
[1,1,1],
[-1,-1,-1]]])
未完待续
注意力机制与Seq2seq模型;Transformer
作者:头号大眼睛