cs224(2019)-assignment4(作业4)

本文详细介绍了一项神经机器翻译(NMT)任务的实现过程,包括句子填充、使用nn.Embedding进行词嵌入初始化、构建包含Bi-LSTM编码器与LSTM解码器的NMT网络结构,并引入了多头注意力机制提升翻译质量。

作业4主要是NMT任务。

 

(1)完成对不同长度的句子的填充操作,使其保持相同长度。(utils.py)文件

def pad_sents(sents, pad_token):
    
    sents_padded = []

    ### YOUR CODE HERE (~6 Lines)
    max_len = len(sents[0])
    for sentence in sents[1:] :
        flag = len(sentence)
        if flag > max_len:
            max_len = flag
    for sentence in sents:
        if len(sentence)< max_len:
            for i in range(len(sentence),max_len):
                sentence.append(pad_token)
        sents_padded.append(sentence)
        

    ### END YOUR CODE

    return sents_padded

由于它没有给测试,所以自己造个句子测试。

l = [['i','want','hate','you'],['i','think','you','are','bad'],['i','like','you']]
print(pad_sents(l,'0')) #sentence,pad_token

output:
[['i', 'want', 'hate', 'you', '0'], ['i', 'think', 'you', 'are', 'bad'], ['i', 'like', 'you', '0', '0']]

(2)利用nn.embedding结构初始化source和target(model_embeddings.py)文件

class ModelEmbeddings(nn.Module): 
    def __init__(self, embed_size, vocab):
        super(ModelEmbeddings, self).__init__()
        self.embed_size = embed_size

        # default values
        self.source = None
        self.target = None

        sr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Foneone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值