背景介绍
机器翻译(machine translation, MT)是用计算机来实现不一样语言之间翻译的技术。被翻译的语言一般称为源语言(source language),翻译成的结果语言称为目标语言(target language)。机器翻译即实现从源语言到目标语言转换的过程,是天然语言处理的重要研究领域之一。html
早期机器翻译系统多为基于规则的翻译系统,须要由语言学家编写两种语言之间的转换规则,再将这些规则录入计算机。该方法对语言学家的要求很是高,并且咱们几乎没法总结一门语言会用到的全部规则,更况且两种甚至更多的语言。所以,传统机器翻译方法面临的主要挑战是没法获得一个完备的规则集合[1]。git
为解决以上问题,统计机器翻译(Statistical Machine Translation, SMT)技术应运而生。在统计机器翻译技术中,转化规则是由机器自动从大规模的语料中学习获得的,而非咱们人主动提供规则。所以,它克服了基于规则的翻译系统所面临的知识获取瓶颈的问题,但仍然存在许多挑战:1)人为设计许多特征(feature),但永远没法覆盖全部的语言现象;2)难以利用全局的特征;3)依赖于许多预处理环节,如词语对齐、分词或符号化(tokenization)、规则抽取、句法分析等,而每一个环节的错误会逐步累积,对翻译的影响也愈来愈大。算法
近年来,深度学习技术的发展为解决上述挑战提供了新的思路。将深度学习应用于机器翻译任务的方法大体分为两类:1)仍以统计机器翻译系统为框架,只是利用神经网络来改进其中的关键模块,如语言模型、调序模型等(见图1的左半部分);2)再也不以统计机器翻译系统为框架,而是直接用神经网络将源语言映射到目标语言,即端到端的神经网络机器翻译(End-to-End Neural Machine Translation, End-to-End NMT)(见图1的右半部分),简称为NMT模型。spring

图1. 基于神经网络的机器翻译系统
本教程主要介绍NMT模型,以及如何用PaddlePaddle来训练一个NMT模型。网络
下载安装命令
## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle
## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
模型概览
本节依次介绍GRU(Gated Recurrent Unit,门控循环单元),双向循环神经网络(Bi-directional Recurrent Neural Network),NMT模型中典型的编码器-解码器(Encoder-Decoder)框架和注意力(Attention)机制,以及柱搜索(beam search)算法。app
GRU
GRU是RNN的一种扩展,以下图所示。GRU单元只有两个门:框架
- 重置门(reset gate):若是重置门关闭,会忽略掉历史信息,即历史不相干的信息不会影响将来的输出。
- 更新门(update gate):将LSTM的输入门和遗忘门合并,用于控制历史信息对当前时刻隐层输出的影响。若是更新门接近1,会把历史信息传递下去。

图2. GRU(门控循环单元)
双向循环神经网络
咱们这里介绍Bengio团队在论文[2,4]中提出的另外一种结构。该结构的目的是输入一个序列,获得其在每一个时刻的特征表示,即输出的每一个时刻都用定长向量表示到该时刻的上下文语义信息。 具体来讲,该双向循环神经网络分别在时间维以顺序和逆序——即前向(forward)和后向(backward)——依次处理输入序列,并将每一个时间步RNN的输出拼接成为最终的输出层。这样每一个时间步的输出节点,都包含了输入序列中当前时刻完整的过去和将来的上下文信息。下图展现的是一个按时间步展开的双向循环神经网络。该网络包含一个前向和一个后向RNN,其中有六个权重矩阵:输入到前向隐层和后向隐层的权重矩阵(W1,W3),隐层到隐层本身的权重矩阵(W2,W5),前向隐层和后向隐层到输出层的权重矩阵(W4,W6)。注意,该网络的前向隐层和后向隐层之间没有链接。less

图3:按时间步展开的双向循环神经网络
编码器-解码器框架
编码器-解码器(Encoder-Decoder)[2]框架用于解决由一个任意长度的源序列到另外一个任意长度的目标序列的变换问题。即编码阶段将整个源序列编码成一个向量,解码阶段经过最大化预测序列几率,从中解码出整个目标序列。编码和解码的过程一般都使用RNN实现。ide

图4:编码器-解码器框架
编码器
1.one-hot vector表示:将源语言句子x={x1, x2,…, xt}的每一个词xi表示成一个列向量,i=1,2,…,T。这个向量Wi的维度与词汇表大小|V| 相同,而且只有一个维度上有值1(该位置对应该词在词汇表中的位置),其他全是0。函数
2.映射到低维语义空间的词向量:one-hot vector表示存在两个问题,1)生成的向量维度每每很大,容易形成维数灾难;2)难以刻画词与词之间的关系(如语义类似性,也就是没法很好地表达语义)。所以,需再one-hot vector映射到低维的语义空间,由一个固定维度的稠密向量(称为词向量)表示。记映射矩阵为,用
表示第i个词的词向量,K为向量维度。
3.用RNN编码源语言词序列:这一过程的计算公式为,其中h0是一个全零的向量,∅θ是一个非线性激活函数,最后获得的h={h1,…, hT}就是RNN依次读入源语言T个词的状态编码序列。整句话的向量表示能够采用h在最后一个时间步T的状态编码,或使用时间维上的池化(pooling)结果。
第3步也可使用双向循环神经网络实现更复杂的句编码表示,具体能够用双向GRU实现。前向GRU按照词序列(x1,…, xT)的顺序依次编码源语言端词,并获得一系列隐层状态。相似的,后向GRU按照(xT,…, x1)的顺序依次编码源语言端词,获得。最后对于词xi,经过拼接两个GRU的结果获得它的隐层状态,即hi=
。

图5:使用双向GRU的编码器
解码器
机器翻译任务的训练过程当中,解码阶段的目标是最大化下一个正确的目标语言词的几率。思路是:
每个时刻,根据源语言句子的编码信息(又叫上下文向量,context vector)c、真实目标语言序列的第i个词ui和i时刻RNN的隐层状态zi,计算出下一个隐层状态zi+1。计算公式以下:

其中∅θ’是一个非线性激活函数;c是源语言句子的上下文向量,在不使用注意力机制时,若是编码器的输出是源语言句子编码后的最后一个元素,则能够定义c=ht ;ui是目标语言序列的第i个单词,u0是目标语言序列的开始标记《s》,表示解码开始;zi是i时刻解码RNN的隐层状态,z0是一个全零的向量。
1.将zi+1经过softmax归一化,获得目标语言序列的第i+1个单词的几率分布pi+1。几率分布公式以下:

其中WsZi+1+bz是对每一个可能的输出单词进行打分,再softmax归一化就能够获得第i+1个词的几率pi+1。 2.根据pi+1和ui+1计算代价。
3.重复步骤1~2,直到目标语言序列中的全部词处理完毕。
机器翻译任务的生成过程,通俗来说就是根据预先训练的模型来翻译源语言句子。生成过程当中的解码阶段和上述训练过程的有所差别,具体介绍请见柱搜索算法。
注意力机制
若是编码阶段的输出是一个固定维度的向量,会带来如下两个问题:1)不论源语言序列的长度是5个词仍是50个词,若是都用固定维度的向量去编码其中的语义和句法结构信息,对模型来讲是一个很是高的要求,特别是对长句子序列而言;2)直觉上,当人类翻译一句话时,会对与当前译文更相关的源语言片断上给予更多关注,且关注点会随着翻译的进行而改变。而固定维度的向量则至关于,任什么时候刻都对源语言全部信息给予了同等程度的关注,这是不合理的。所以,Bahdanau等人引入注意力(attention)机制,能够对编码后的上下文片断进行解码,以此来解决长句子的特征学习问题。下面介绍在注意力机制下的解码器结构。
与简单的解码器不一样,这里zi的计算公式为:




图6. 基于注意力机制的解码器
柱搜索算法
柱搜索(beam search)是一种启发式图搜索算法,用于在图或树中搜索有限集合中的最优扩展节点,一般用在解空间很是大的系统(如机器翻译、语音识别)中,缘由是内存没法装下图或树中全部展开的解。如在机器翻译任务中但愿翻译“《s》你好《e》”,就算目标语言字典中只有3个词(《s》,《e》 , hello),也可能生成无限句话(hello循环出现的次数不定),为了找到其中较好的翻译结果,咱们可采用柱搜索算法。
柱搜索算法使用广度优先策略创建搜索树,在树的每一层,按照启发代价(heuristic cost)(本教程中,为生成词的log几率之和)对节点进行排序,而后仅留下预先肯定的个数(文献中一般称为beam width、beam size、柱宽度等)的节点。只有这些节点会在下一层继续扩展,其余节点就被剪掉了,也就是说保留了质量较高的节点,剪枝了质量较差的节点。所以,搜索所占用的空间和时间大幅减小,但缺点是没法保证必定得到最优解。 使用柱搜索算法的解码阶段,目标是最大化生成序列的几率。思路是: 1.每个时刻,根据源语言句子的编码信息cc、生成的第ii个目标语言序列单词ui和i时刻RNN的隐层状态zi,计算出下一个隐层状态zi+1。 2.将zi+1经过softmax归一化,获得目标语言序列的第i+1个单词的几率分布pi+1。 3.根据pi+1采样出单词ui+1。 4.重复步骤1~3,直到得到句子结束标记或超过句子的最大生成长度为止。
注意:zi+1和pi+1的计算公式同解码器中的同样。且因为生成时的每一步都是经过贪心法实现的,所以并不能保证获得全局最优解。
数据介绍
本教程使用WMT-16新增的multimodal task中的translation task的数据集。该数据集为英德翻译数据,包含29001条训练数据,1000条测试数据。
数据预处理
咱们的预处理流程包括两步:
-
将每一个源语言到目标语言的平行语料库文件合并为一个文件:
-
合并每一个
XXX.src
和XXX.trg
文件为XXX
。 -
XXX
中的第iii行内容为XXX.src
中的第iii行和XXX.trg
中的第iii行链接,用'\t'分隔。 -
建立训练数据的“源字典”和“目标字典”。每一个字典都有DICTSIZE个单词,包括:语料中词频最高的(DICTSIZE - 3)个单词,和3个特殊符号
<s>
(序列的开始)、<e>
(序列的结束)和<unk>
(未登陆词)。
示例数据
为了验证训练流程,PaddlePaddle接口paddle.dataset.wmt16
中提供了对该数据集预处理后的版本,调用该接口便可直接使用,由于数据规模限制,这里只做为示例使用,在相应的测试集上具备必定效果但在更多测试数据上的效果没法保证。
注意
本项目代码须要使用GPU环境来运行:

而且检查相关参数设置, 例如use_gpu, fluid.CUDAPlace(0)等处是否设置正确.
from __future__ import print_function import os import six import numpy as np import paddle import paddle.fluid as fluid import paddle.fluid.layers as layers dict_size = 30000 # 词典大小 bos_id = 0 # 词典中start token对应的id eos_id = 1 # 词典中end token对应的id source_dict_size = target_dict_size = dict_size # 源/目标语言字典大小 word_dim = 512 # 词向量维度 hidden_dim = 512 # 编码器中的隐层大小 decoder_size = hidden_dim # 解码器中的隐层大小 max_length = 256 # 解码生成句子的最大长度 beam_size = 4 # beam search的柱宽度 batch_size = 64 # batch 中的样本数 model_save_dir = "machine_translation.inference.model"
接着定义所须要的数据输入:
def data_func(is_train=True): # 源语言source数据 src = fluid.data(name="src", shape=[None, None], dtype="int64") src_sequence_length = fluid.data(name="src_sequence_length", shape=[None], dtype="int64") inputs = [src, src_sequence_length] # 训练时还须要目标语言target和label数据 if is_train: trg = fluid.data(name="trg", shape=[None, None], dtype="int64") trg_sequence_length = fluid.data(name="trg_sequence_length", shape=[None], dtype="int64") label = fluid.data(name="label", shape=[None, None], dtype="int64") inputs += [trg, trg_sequence_length, label] # data loader loader = fluid.io.DataLoader.from_generator(feed_list=inputs, capacity=10, iterable=True, use_double_buffer=True) return inputs, loader
而后以下实现使用双向GRU的编码器:
def encoder(src_embedding, src_sequence_length): # 使用GRUCell构建前向RNN encoder_fwd_cell = layers.GRUCell(hidden_size=hidden_dim) encoder_fwd_output, fwd_state = layers.rnn( cell=encoder_fwd_cell, inputs=src_embedding, sequence_length=src_sequence_length, time_major=False, is_reverse=False) # 使用GRUCell构建反向RNN encoder_bwd_cell = layers.GRUCell(hidden_size=hidden_dim) encoder_bwd_output, bwd_state = layers.rnn( cell=encoder_bwd_cell, inputs=src_embedding, sequence_length=src_sequence_length, time_major=False, is_reverse=True) # 拼接前向与反向GRU的编码结果获得h encoder_output = layers.concat( input=[encoder_fwd_output, encoder_bwd_output], axis=2) encoder_state = layers.concat(input=[fwd_state, bwd_state], axis=1) return encoder_output, encoder_state
再实现基于注意力机制的解码器:
- 首先经过 Cell 定义解码器中单步的计算,即zi+1=ϕθ′(ci,ui,zi),这里使用 GRU 并加上注意力机制(Additive Attention),代码以下:
class DecoderCell(layers.RNNCell): def __init__(self, hidden_size): self.hidden_size = hidden_size self.gru_cell = layers.GRUCell(hidden_size) def attention(self, hidden, encoder_output, encoder_output_proj, encoder_padding_mask): # 定义attention用以计算context,即 c_i,这里使用Bahdanau attention机制 decoder_state_proj = layers.unsqueeze( layers.fc(hidden, size=self.hidden_size, bias_attr=False), [1]) mixed_state = fluid.layers.elementwise_add( encoder_output_proj, layers.expand(decoder_state_proj, [1, layers.shape(decoder_state_proj)[1], 1])) attn_scores = layers.squeeze( layers.fc(input=mixed_state, size=1, num_flatten_dims=2, bias_attr=False), [2]) if encoder_padding_mask is not None: attn_scores = layers.elementwise_add(attn_scores, encoder_padding_mask) attn_scores = layers.softmax(attn_scores) context = layers.reduce_sum(layers.elementwise_mul(encoder_output, attn_scores, axis=0), dim=1) return context def call(self, step_input, hidden, encoder_output, encoder_output_proj, encoder_padding_mask=None): # Bahdanau attention context = self.attention(hidden, encoder_output, encoder_output_proj, encoder_padding_mask) step_input = layers.concat([step_input, context], axis=1) # GRU output, new_hidden = self.gru_cell(step_input, hidden) return output, new_hidden
- 基于定义的单步计算,使用 fluid.layers.rnn 和 fluid.layers.dynamic_decode 分别实现用于训练和预测生成的多步循环解码器,以下:
def decoder(encoder_output, encoder_output_proj, encoder_state, encoder_padding_mask, trg=None, is_train=True): # 定义 RNN 所须要的组件 decoder_cell = DecoderCell(hidden_size=decoder_size) decoder_initial_states = layers.fc(encoder_state, size=decoder_size, act="tanh") trg_embeder = lambda x: fluid.embedding(input=x, size=[target_dict_size, hidden_dim], dtype="float32", param_attr=fluid.ParamAttr( name="trg_emb_table")) output_layer = lambda x: layers.fc(x, size=target_dict_size, num_flatten_dims=len(x.shape) - 1, param_attr=fluid.ParamAttr(name= "output_w")) if is_train: # 训练 # 训练时使用 `layers.rnn` 构造由 `cell` 指定的循环神经网络 # 循环的每一步从 `inputs` 中切片产生输入,并执行 `cell.call` decoder_output, _ = layers.rnn( cell=decoder_cell, inputs=trg_embeder(trg), initial_states=decoder_initial_states, time_major=False, encoder_output=encoder_output, encoder_output_proj=encoder_output_proj, encoder_padding_mask=encoder_padding_mask) decoder_output = output_layer(decoder_output) else: # 基于 beam search 的预测生成 # beam search 时须要将用到的形为 `[batch_size, ...]` 的张量扩展为 `[batch_size* beam_size, ...]` encoder_output = layers.BeamSearchDecoder.tile_beam_merge_with_batch( encoder_output, beam_size) encoder_output_proj = layers.BeamSearchDecoder.tile_beam_merge_with_batch( encoder_output_proj, beam_size) encoder_padding_mask = layers.BeamSearchDecoder.tile_beam_merge_with_batch( encoder_padding_mask, beam_size) # BeamSearchDecoder 定义了单步解码的操做:`cell.call` + `beam_search_step` beam_search_decoder = layers.BeamSearchDecoder(cell=decoder_cell, start_token=bos_id, end_token=eos_id, beam_size=beam_size, embedding_fn=trg_embeder, output_fn=output_layer) # 使用 layers.dynamic_decode 动态解码 # 重复执行 `decoder.step()` 直到其返回的表示完成状态的张量中的值所有为True或解码步骤达到 `max_step_num` decoder_output, _ = layers.dynamic_decode( decoder=beam_search_decoder, inits=decoder_initial_states, max_step_num=max_length, output_time_major=False, encoder_output=encoder_output, encoder_output_proj=encoder_output_proj, encoder_padding_mask=encoder_padding_mask) return decoder_output
接着就可使用编码器和解码器定义整个网络,以下:
def model_func(inputs, is_train=True): # 源语言输入 src = inputs[0] src_sequence_length = inputs[1] src_embeder = lambda x: fluid.embedding( input=x, size=[source_dict_size, hidden_dim], dtype="float32", param_attr=fluid.ParamAttr(name="src_emb_table")) src_embedding = src_embeder(src) # 编码器 encoder_output, encoder_state = encoder(src_embedding, src_sequence_length) encoder_output_proj = layers.fc(input=encoder_output, size=decoder_size, num_flatten_dims=2, bias_attr=False) src_mask = layers.sequence_mask(src_sequence_length, maxlen=layers.shape(src)[1], dtype="float32") encoder_padding_mask = (src_mask - 1.0) * 1e9 # 目标语言输入,训练时有、预测生成时无该输入 trg = inputs[2] if is_train else None # 解码器 output = decoder(encoder_output=encoder_output, encoder_output_proj=encoder_output_proj, encoder_state=encoder_state, encoder_padding_mask=encoder_padding_mask, trg=trg, is_train=is_train) return output
为了进行训练还须要定义损失函数和优化器,以下:
def loss_func(logits, label, trg_sequence_length): probs = layers.softmax(logits) # 使用交叉熵损失函数 loss = layers.cross_entropy(input=probs, label=label) # 根据长度生成掩码,并依此剔除 padding 部分计算的损失 trg_mask = layers.sequence_mask(trg_sequence_length, maxlen=layers.shape(logits)[1], dtype="float32") avg_cost = layers.reduce_sum(loss * trg_mask) / layers.reduce_sum(trg_mask) return avg_cost def optimizer_func(): # 设置梯度裁剪 fluid.clip.set_gradient_clip( clip=fluid.clip.GradientClipByGlobalNorm(clip_norm=5.0)) # 定义先增后降的学习率策略 lr_decay = fluid.layers.learning_rate_scheduler.noam_decay(hidden_dim, 1000) return fluid.optimizer.Adam( learning_rate=lr_decay, regularization=fluid.regularizer.L2DecayRegularizer( regularization_coeff=1e-4))
训练模型
定义数据生成器
使用内置的paddle.dataset.wmt16.train接口定义数据生成器,其每次产生一条样本,shuffle和组完batch后对batch内的样本进行padding做为训练的输入;同时定义预测使用的数据生成器,以下:
def inputs_generator(batch_size, pad_id, is_train=True): data_generator = fluid.io.shuffle( paddle.dataset.wmt16.train(source_dict_size, target_dict_size), buf_size=10000) if is_train else paddle.dataset.wmt16.test( source_dict_size, target_dict_size) batch_generator = fluid.io.batch(data_generator, batch_size=batch_size) # 对 batch 内的数据进行 padding def _pad_batch_data(insts, pad_id): seq_lengths = np.array(list(map(len, insts)), dtype="int64") max_len = max(seq_lengths) pad_data = np.array( [inst + [pad_id] * (max_len - len(inst)) for inst in insts], dtype="int64") return pad_data, seq_lengths def _generator(): for batch in batch_generator(): batch_src = [ins[0] for ins in batch] src_data, src_lengths = _pad_batch_data(batch_src, pad_id) inputs = [src_data, src_lengths] if is_train: #训练时包含 target 和 label 数据 batch_trg = [ins[1] for ins in batch] trg_data, trg_lengths = _pad_batch_data(batch_trg, pad_id) batch_lbl = [ins[2] for ins in batch] lbl_data, _ = _pad_batch_data(batch_lbl, pad_id) inputs += [trg_data, trg_lengths, lbl_data] yield inputs return _generator
构建训练程序
定义用于训练的Program,在其中建立训练的网络结构并添加优化器。同时还要定义用于初始化的Program,在建立训练网络的同时隐式的加入参数初始化的操做。
train_prog = fluid.Program() startup_prog = fluid.Program() with fluid.program_guard(train_prog, startup_prog): with fluid.unique_name.guard(): # 训练时: # inputs = [src, src_sequence_length, trg, trg_sequence_length, label] inputs, loader = data_func(is_train=True) logits = model_func(inputs, is_train=True) loss = loss_func(logits, inputs[-1], inputs[-2]) optimizer = optimizer_func() optimizer.minimize(loss)
定义训练环境
定义您的训练环境,包括指定所用的设备、绑定训练使用的数据源和定义执行器。
# 设置训练设备 use_cuda = True places = fluid.cuda_places() if use_cuda else fluid.cpu_places() # 设置数据源 loader.set_batch_generator(inputs_generator(batch_size, eos_id, is_train=True), places=places) # 定义执行器,初始化参数并绑定Program exe = fluid.Executor(places[0]) exe.run(startup_prog) prog = fluid.CompiledProgram(train_prog).with_data_parallel( loss_name=loss.name)
Cache file /home/aistudio/.cache/paddle/dataset/wmt16/wmt16.tar.gz not found, downloading http://paddlemodels.bj.bcebos.com/wmt/wmt16.tar.gz Begin to download Download finished
训练主循环
经过训练循环数(EPOCH_NUM)来进行训练循环,而且每次循环都保存训练好的参数。注意,循环训练前要首先执行初始化的Program来初始化参数。另外做为示例这里EPOCH_NUM设置较小,该数据集上实际大概须要20个epoch左右收敛。
EPOCH_NUM = 2 for pass_id in six.moves.xrange(EPOCH_NUM): batch_id = 0 for data in loader(): loss_val = exe.run(prog, feed=data, fetch_list=[loss])[0] loss_val = np.mean(np.array(loss_val)) print('pass_id: {}, batch_id: {}, loss: {}'.format(pass_id, batch_id, loss_val)) batch_id += 1 # 保存模型 fluid.io.save_params(exe, model_save_dir, main_program=train_prog)
pass_id: 1, batch_id: 438, loss: 3.8864176273345947 pass_id: 1, batch_id: 439, loss: 4.014255523681641 pass_id: 1, batch_id: 440, loss: 3.934217929840088 pass_id: 1, batch_id: 441, loss: 3.987039566040039 pass_id: 1, batch_id: 442, loss: 3.9769933223724365 pass_id: 1, batch_id: 443, loss: 3.969778537750244 pass_id: 1, batch_id: 444, loss: 3.9275877475738525 pass_id: 1, batch_id: 445, loss: 3.9984993934631348 pass_id: 1, batch_id: 446, loss: 3.9405174255371094 pass_id: 1, batch_id: 447, loss: 3.920515298843384 pass_id: 1, batch_id: 448, loss: 3.812659978866577 pass_id: 1, batch_id: 449, loss: 3.998297691345215 pass_id: 1, batch_id: 450, loss: 3.9751908779144287 pass_id: 1, batch_id: 451, loss: 4.153567790985107 pass_id: 1, batch_id: 452, loss: 3.9080991744995117 pass_id: 1, batch_id: 453, loss: 4.143310070037842
应用模型
构建预测程序
定义用于预测的Program,在其中建立预测的网络结构。
infer_prog = fluid.Program() startup_prog = fluid.Program() with fluid.program_guard(infer_prog, startup_prog): with fluid.unique_name.guard(): inputs, loader = data_func(is_train=False) predict_seqs = model_func(inputs, is_train=False)
定义预测环境
定义您的预测环境,和训练相似,包括指定所用的设备、绑定训练使用的数据源和定义执行器。
use_cuda = True # 设置训练设备 places = fluid.cuda_places() if use_cuda else fluid.cpu_places() # 设置数据源 loader.set_batch_generator(inputs_generator(batch_size, eos_id, is_train=False), places=places) # 定义执行器,加载参数并绑定Program exe = fluid.Executor(places[0]) exe.run(startup_prog) fluid.io.load_params(exe, model_save_dir, main_program=infer_prog) prog = fluid.CompiledProgram(infer_prog).with_data_parallel()
测试
循环测试数据进行预测,生成过程对于每一个测试数据都会将源语言句子和beam_size个生成句子打印输出,为打印出正确的句子还须要使用id到word映射的词典。以下:
# 获取 id 到 word 映射的词典 src_idx2word = paddle.dataset.wmt16.get_dict( "en", source_dict_size, reverse=True) trg_idx2word = paddle.dataset.wmt16.get_dict( "de", target_dict_size, reverse=True) # 循环测试数据 for data in loader(): print("start infer data:{}".format(data)) seq_ids = exe.run(prog, feed=data, fetch_list=[predict_seqs])[0] print("end infer") for ins_idx in range(seq_ids.shape[0]): print("Original sentence:") src_seqs = np.array(data[0]["src"]) print(" ".join([ src_idx2word[idx] for idx in src_seqs[ins_idx][1:] if idx != eos_id ])) print("Translated sentence:") for beam_idx in range(beam_size): seq = [ trg_idx2word[idx] for idx in seq_ids[ins_idx, :, beam_idx] if idx != eos_id ] print(" ".join(seq).encode("utf8"))
start infer data:[{'src_sequence_length': <paddle.fluid.core_avx.LoDTensor object at 0x7f90d0de2e30>, 'src': <paddle.fluid.core_avx.LoDTensor object at 0x7f90d0de2670>}] end infer Original sentence: A man in an orange hat starring at something . Translated sentence: b'Ein Mann in einem blauen Hemd spielt' b'Ein Mann in einem roten Hemd spielt' b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf einer Bank .' Original sentence: A Boston Terrier is running on lush green grass in front of a white fence . Translated sentence: b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Foto in der Luft .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Foto in der Hand .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Foto auf der Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Foto in der Luft zu .' Original sentence: A girl in karate uniform breaking a stick with a front kick . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einer Bank .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd spielt auf einem B\xc3\xbcrgersteig .' Original sentence: Five people wearing winter jackets and helmets stand in the snow , with <unk> in the background . Translated sentence: b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe und schauen .' b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe und unterhalten sich .' b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe und unterhalten sich auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe und unterhalten sich auf einem Tisch .' Original sentence: People are fixing the roof of a house . Translated sentence: b'Eine Gruppe von Menschen gehen auf einem Feld .' b'Eine Gruppe von Menschen gehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten spielt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A man in light colored clothing photographs a group of men wearing dark suits and hats standing around a woman dressed in a <unk> gown . Translated sentence: b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand , w\xc3\xa4hrend ein Mann in der Hand .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand , w\xc3\xa4hrend ein Mann in der Luft .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand , w\xc3\xa4hrend ein Mann in der Hand und sehen .' Original sentence: A group of people standing in front of an igloo . Translated sentence: b'Eine Gruppe von Menschen gehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen spielt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen gehen auf einem Feld .' b'Eine Gruppe von Leuten spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A boy in a red uniform is attempting to avoid getting out at home plate , while the catcher in the blue uniform is attempting to catch him . Translated sentence: b'Ein kleiner Junge in einem roten Hemd , der ein Mann , der ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Luft .' b'Ein kleiner Junge in einem roten Hemd , der ein Mann , der ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Hand .' b'Ein kleiner Junge in einem roten Hemd , der ein Mann , der ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Luft , der ein Foto zu .' b'Ein kleiner Junge in einem roten Hemd , der ein Mann , der ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Luft , w\xc3\xa4hrend ein Mann in der Luft , der ein Foto zu sehen .' Original sentence: A guy works on a building . Translated sentence: b'Ein Mann f\xc3\xa4hrt auf dem Boden .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann f\xc3\xa4hrt auf dem Wasser .' b'Ein Mann f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: A man in a vest is sitting in a chair and holding magazines . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf einer Bank .' b'Ein Mann und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe und h\xc3\xa4lt ein Foto .' Original sentence: A mother and her young song enjoying a beautiful day outside . Translated sentence: b'Eine Gruppe von Leuten sitzt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten steht auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten sitzt auf einem Tisch .' b'Eine Gruppe von Leuten sitzt auf einem B\xc3\xbcrgersteig und schaut .' Original sentence: Men playing volleyball , with one player missing the ball but hands still in the air . Translated sentence: b'Eine Gruppe von Menschen und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einer Stra\xc3\x9fe und schauen .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einer Stra\xc3\x9fe und schauen sich .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einer Stra\xc3\x9fe und schauen sich auf einem B\xc3\xbcrgersteig .' Original sentence: A woman holding a bowl of food in a kitchen . Translated sentence: b'Eine Frau in einem roten Oberteil spielt' b'Eine Frau in einem roten Hemd spielt' b'Eine Frau in einem blauen Hemd spielt' b'Eine Frau in einem roten Hemd geht auf einem B\xc3\xbcrgersteig .' Original sentence: Man sitting using tool at a table in his home . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf einer Bank .' b'Ein Mann und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Ein Mann und eine Frau sitzen auf einem Tisch .' Original sentence: Three people sit in a cave . Translated sentence: b'Zwei Frauen sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei Frauen sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' Original sentence: A girl in a jean dress is walking along a raised balance beam . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd spielt auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd spielt auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd spielt auf einem Baum .' b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A blond holding hands with a guy in the sand . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd spielt' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd spielt' b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil spielt' b'Ein kleines M\xc3\xa4dchen in einem blauen Oberteil spielt' Original sentence: A woman in a gray sweater and black baseball cap is standing in line at a shop . Translated sentence: b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem blauen Oberteil .' b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem blauen Oberteil .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem blauen Hemd .' b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem blauen Hemd .' Original sentence: The person in the striped shirt is mountain climbing . Translated sentence: b'Eine Frau in einem roten Hemd spielt' b'Eine Frau in einem roten Oberteil spielt' b'Eine Frau in einem blauen Hemd spielt' b'Eine Frau in einem blauen Oberteil spielt' Original sentence: Two men pretend to be <unk> while women look on . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe entlang .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und unterhalten sich .' Original sentence: People standing outside of a building . Translated sentence: b'Drei Frauen sitzen auf einer Stra\xc3\x9fe .' b'Drei Frauen stehen auf einer Stra\xc3\x9fe .' b'Drei Frauen sitzen auf einem B\xc3\xbcrgersteig .' b'Drei Frauen stehen auf einem B\xc3\xbcrgersteig .' Original sentence: A teenager plays her trumpet on the field at a game . Translated sentence: b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Foto .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Foto zu .' Original sentence: A woman does a somersault on a trampoline on the beach . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil f\xc3\xa4hrt auf dem Boden .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A man is standing by a group of video games in a bar . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf einer Bank .' b'Ein Mann und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Ein Mann und eine Frau stehen auf einem B\xc3\xbcrgersteig .' Original sentence: A woman uses a drill while another man takes her picture . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einer Bank .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A woman in a pink sweater and an apron , cleaning a table with a sponge . Translated sentence: b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem blauen Oberteil .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem blauen Oberteil .' b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem blauen Hemd .' b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem blauen Hemd ist .' Original sentence: A man cutting branches of trees . Translated sentence: b'Ein Mann spielt' b'Ein Mann f\xc3\xa4hrt auf dem Boden .' b'Ein Mann f\xc3\xa4hrt auf dem Wasser .' b'Ein Mann f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: Group of Asian boys wait for meat to cook over barbecue . Translated sentence: b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe entlang .' b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Foto .' b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Foto zu .' Original sentence: Women , wearing traditional clothing , are <unk> native life . Translated sentence: b'Eine Gruppe von Leuten steht auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Leuten steht auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten spielt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten steht auf einer Bank .' Original sentence: One man holds another man 's head down and prepares to punch him in the face . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft .' b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand .' b'Ein Mann und eine Frau sitzen auf einer Bank , w\xc3\xa4hrend ein Mann in der Luft .' b'Ein Mann und eine Frau sitzen auf einer Bank , w\xc3\xa4hrend ein Mann in der Hand .' Original sentence: Six people ride mountain bikes through a jungle environment . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner stehen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner stehen auf einem B\xc3\xbcrgersteig .' Original sentence: 2 blond girls are sitting on a ledge in a crowded plaza . Translated sentence: b'Zwei M\xc3\xa4nner in einem roten Oberteil gehen auf einer Stra\xc3\x9fe .' b'Drei M\xc3\xa4nner in einem roten Oberteil gehen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner in einem roten Oberteil gehen auf einem B\xc3\xbcrgersteig .' b'Drei M\xc3\xa4nner in einem roten Oberteil gehen auf einem B\xc3\xbcrgersteig .' Original sentence: A child is splashing in the water Translated sentence: b'Ein Mann spielt' b'Ein Mann f\xc3\xa4hrt auf dem Boden .' b'Ein Mann f\xc3\xa4hrt auf dem Wasser .' b'Ein Mann f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: Three people sit at a picnic table outside of a building painted like a union jack . Translated sentence: b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil , der ein Mann in der Hand .' b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil , die ein Mann in der Hand .' b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil , der ein Mann in der Luft .' b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil , der ein Mann in der N\xc3\xa4he .' Original sentence: 3 boys are standing on a pier in their bathing suits . Translated sentence: b'Eine Gruppe von Menschen stehen auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen gehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen stehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen stehen auf einer Stra\xc3\x9fe und schauen .' Original sentence: An employee is handing a woman a bag while she is browsing through fish on ice at a street market . Translated sentence: b'Eine junge Frau in einem roten Hemd geht auf einer Stra\xc3\x9fe .' b'Eine junge Frau in einem roten Hemd geht auf einer Bank .' b'Eine junge Frau in einem roten Hemd geht auf einem B\xc3\xbcrgersteig .' b'Eine junge Frau in einem roten Hemd geht auf einer Stra\xc3\x9fe und schaut .' Original sentence: A pretty woman plays a <unk> . Translated sentence: b'Eine Frau geht auf einer Stra\xc3\x9fe .' b'Eine Frau geht auf einer Bank .' b'Eine Frau geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau geht auf einer Stra\xc3\x9fe' Original sentence: Outside a building , a uniformed security guard looks at the camera from behind a fence . Translated sentence: b'Ein Footballspieler in einem roten Trikot f\xc3\xa4hrt auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft .' b'Ein Footballspieler in einem roten Trikot f\xc3\xa4hrt auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand .' b'Ein Footballspieler in einem roten Trikot f\xc3\xa4hrt auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Foto auf der Stra\xc3\x9fe .' b'Ein Footballspieler in einem roten Trikot f\xc3\xa4hrt auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft zu .' Original sentence: The young lady is looking at the pizza . Translated sentence: b'Eine Frau geht auf einer Stra\xc3\x9fe .' b'Eine Frau geht auf einer Bank .' b'Eine Frau geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau geht auf dem B\xc3\xbcrgersteig .' Original sentence: A shirtless man in shorts is fishing while standing on some rocks . Translated sentence: b'Ein Mann in einem blauen Hemd spielt auf einer Stra\xc3\x9fe .' b'Ein Mann in einem blauen Hemd spielt auf einer Bank .' b'Ein Mann in einem roten Hemd spielt auf einer Stra\xc3\x9fe .' b'Ein Mann in einem blauen Hemd spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A girl wearing a life vest floats in water . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd spielt' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd spielt' b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil spielt' b'Ein kleines M\xc3\xa4dchen in einem blauen Oberteil spielt' Original sentence: A man in uniform and a man in a blue shirt are standing in front of a truck . Translated sentence: b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Bank .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einem B\xc3\xbcrgersteig .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einem Tisch .' Original sentence: People sit inside a train . Translated sentence: b'Drei Frauen stehen auf einer Stra\xc3\x9fe .' b'Drei Frauen stehen auf einem Feld .' b'Drei Frauen stehen auf einem B\xc3\xbcrgersteig .' b'Drei Frauen stehen an einer Stra\xc3\x9fe .' Original sentence: A kid swings with his feet up in the air in a forest . Translated sentence: b'Ein kleiner Junge in einem roten Hemd f\xc3\xa4hrt auf dem Boden .' b'Ein kleiner Junge in einem roten Hemd f\xc3\xa4hrt auf dem Wasser .' b'Ein kleiner Junge in einem roten Hemd f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' b'Ein kleiner Junge in einem roten Hemd f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A man in a red shirt entering an establishment . Translated sentence: b'Ein Mann in einem blauen Hemd spielt' b'Ein Mann in einem roten Hemd spielt' b'Ein Mann und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Ein Mann und eine Frau sitzen auf einem See .' Original sentence: Two men wearing swim trunks jump in the air at a moderately populated beach . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und schauen sich auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und schauen sich auf einem B\xc3\xbcrgersteig .' b'Zwei Frauen sitzen auf einer Stra\xc3\x9fe und schauen sich auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und schauen sich auf einem Feld .' Original sentence: A toddler is cooking with another person . Translated sentence: b'Ein kleines M\xc3\xa4dchen spielt in der Luft .' b'Ein kleines M\xc3\xa4dchen spielt in der Hand .' b'Ein kleines M\xc3\xa4dchen spielt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen spielt in der N\xc3\xa4he .' Original sentence: A <unk> and two children outside their home doing yard work such as using a hoe on the grass and planting a tree . Translated sentence: b'Eine Gruppe von Menschen , die eine Frau , die auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand , der ein Mann in der Luft .' b'Eine Gruppe von Menschen , die eine Frau , die auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand , der ein Mann in der Hand .' b'Eine Gruppe von Menschen , die eine Frau , die auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft , der ein Mann in der Luft .' b'Eine Gruppe von Menschen , die eine Frau , die auf der Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft , der ein Mann in der Hand .' Original sentence: A man cooking food on the stove . Translated sentence: b'Ein Mann f\xc3\xa4hrt auf dem Boden .' b'Ein Mann f\xc3\xa4hrt auf einer Bank .' b'Ein Mann f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein Mann f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: A man in jeans at the beach playing with a red ball . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf einer Bank .' b'Ein Mann und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe und .' Original sentence: People walking down sidewalk next to a line of stores . Translated sentence: b'Eine Gruppe von Menschen stehen auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen stehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' Original sentence: A wakeboarder performs a flip while being towed at high speed . Translated sentence: b'Ein kleiner Junge f\xc3\xa4hrt auf einem Motorrad auf der Stra\xc3\x9fe .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem Motorrad auf dem Boden .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem Motorrad auf der Stra\xc3\x9fe entlang .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem Motorrad , w\xc3\xa4hrend ein Foto zu .' Original sentence: A large group of people fill a street . Translated sentence: b'Eine Gruppe von Menschen gehen auf einem Feld .' b'Eine Gruppe von Menschen gehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten spielt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A man on a tag line going into the water . Translated sentence: b'Ein Mann sitzt auf einer Bank .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einem B\xc3\xbcrgersteig .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe und schaut .' Original sentence: A woman in jeans walks by a bus with an ad depicting a woman peering over her sunglasses . Translated sentence: b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem blauen Hemd und ein Mann .' b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem blauen Hemd und ein Mann .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem schwarzen Hemd und ein Mann .' b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem schwarzen Hemd und ein Mann .' Original sentence: A man in a pink shirt is sitting in the grass and a ball is in the air . Translated sentence: b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Bank .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einem B\xc3\xbcrgersteig .' b'Ein Mann in einem roten Hemd und blauer Hose geht auf einem B\xc3\xbcrgersteig .' Original sentence: A car parked at the beach . Translated sentence: b'Eine Gruppe von Leuten spielt' b'Eine Gruppe von Junge spielt' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf einem Feld .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: Two men wearing black in a city Translated sentence: b'Zwei Frauen sitzen auf einer Stra\xc3\x9fe .' b'Zwei Frauen sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei Frauen sitzen auf einer Bank .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' Original sentence: The man in the yellow pants is raising his arms . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf einer Bank .' b'Ein Mann und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Ein Mann und eine Frau stehen auf einem B\xc3\xbcrgersteig .' Original sentence: Two men wearing hats and using walking sticks are walking near a body of water during <unk> . Translated sentence: b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe und schauen .' b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe und schauen sich .' b'Zwei M\xc3\xa4nner und eine Frau sitzen auf einer Stra\xc3\x9fe und schauen sich auf einem B\xc3\xbcrgersteig .' Original sentence: A cheerleading team doing a routine on chairs . Translated sentence: b'Eine Gruppe von Leuten f\xc3\xa4hrt auf dem Boden .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf einem Feld .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A boy is playing checkers with an adult shown off-screen while a girl looks on . Translated sentence: b'Ein Junge in einem roten Hemd spielt auf einer Stra\xc3\x9fe .' b'Ein Junge in einem roten Hemd f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein Junge in einem roten Hemd f\xc3\xa4hrt auf einer Bank .' b'Ein Junge in einem roten Hemd f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A crowd of people out for some fun in public park . Translated sentence: b'Eine Gruppe von Menschen steht auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen spielt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten steht auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A man sits on a bench holding his dog and looking at the water . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf der Stra\xc3\x9fe und h\xc3\xa4lt ein Foto .' b'Ein Mann und eine Frau sitzen auf der Stra\xc3\x9fe und h\xc3\xa4lt sich auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf der Stra\xc3\x9fe und h\xc3\xa4lt sich auf einem B\xc3\xbcrgersteig .' start infer data:[{'src_sequence_length': <paddle.fluid.core_avx.LoDTensor object at 0x7f90d0de2bf0>, 'src': <paddle.fluid.core_avx.LoDTensor object at 0x7f90d0de2ef0>}] end infer Original sentence: A boy and his younger brother playing together at the playground . Translated sentence: b'Ein kleiner Junge f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Mann zu .' b'Ein kleiner Junge f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Mann in der Luft .' b'Ein kleiner Junge f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Mann in der Hand .' b'Ein kleiner Junge f\xc3\xa4hrt auf dem Boden , w\xc3\xa4hrend ein Mann in der Luft zu .' Original sentence: A woman in blue looks in a black leather bag while sitting on a bench during a sunny afternoon while people and <unk> passed behind her . Translated sentence: b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem schwarzen Hemd und einem blauen Hemd und einem blauen Hemd und ein Mann .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem blauen Hemd und einem blauen Hemd und einem blauen Hemd und ein Mann .' b'Eine Frau in einem blauen Hemd und einem schwarzen Hemd und einem schwarzen Hemd und einem blauen Hemd und einem blauen Hemd und ein Mann .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd und einem schwarzen Hemd und einem blauen Hemd und einem blauen Oberteil und ein Mann .' Original sentence: The brown dog is standing on the sandy beach . Translated sentence: b'Ein kleiner Junge f\xc3\xa4hrt auf einem Felsen .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem Feld .' b'Ein kleiner Junge springt auf einem B\xc3\xbcrgersteig .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A woman is sitting with a basket of cloth , surrounded by cloth . Translated sentence: b'Eine Frau in einem roten Hemd geht auf einer Stra\xc3\x9fe .' b'Eine Frau in einem roten Hemd geht auf einer Bank .' b'Eine Frau in einem roten Hemd geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau in einem roten Hemd geht auf einem Tisch .' Original sentence: A man is grilling out in his backyard . Translated sentence: b'Ein Mann f\xc3\xa4hrt auf dem Boden .' b'Ein Mann f\xc3\xa4hrt auf einer Bank .' b'Ein Mann f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein Mann f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: A woman sings in a club with a guitarist behind her . Translated sentence: b'Eine Frau in einem roten Hemd und einem blauen Hemd spielt' b'Eine Frau in einem roten Hemd und einem blauen Oberteil spielt' b'Eine Frau in einem roten Hemd und einem schwarzen Oberteil spielt' b'Eine Frau in einem roten Hemd und einem roten Oberteil spielt' Original sentence: Guitar player performs at a nightclub red guitar . Translated sentence: b'Eine Frau geht auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf dem Boden .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A child sitting on a lawn chair looking up at the camera Translated sentence: b'Ein Junge in einem roten Hemd f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein Junge in einem roten Hemd f\xc3\xa4hrt auf einer Bank .' b'Ein Junge in einem roten Hemd f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' b'Ein Junge in einem roten Hemd spielt auf einem B\xc3\xbcrgersteig .' Original sentence: Two ladies and three men looking at the ocean . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei Frauen sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei Frauen sitzen auf einem B\xc3\xbcrgersteig .' Original sentence: A female performer with a violin plays on a street while a woman with a blue guitar looks on . Translated sentence: b'Eine Frau in einem roten Hemd und einem schwarzen Hemd geht auf einer Stra\xc3\x9fe .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd geht auf einer Bank .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau in einem roten Hemd und einem blauen Hemd geht auf einem B\xc3\xbcrgersteig .' Original sentence: A young girl swimming in a pool Translated sentence: b'Ein kleines M\xc3\xa4dchen spielt in der Luft .' b'Ein kleines M\xc3\xa4dchen spielt in der Hand .' b'Ein kleines M\xc3\xa4dchen spielt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen spielt in der N\xc3\xa4he .' Original sentence: Several children are outdoors getting ready to play tug-of-war . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner stehen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner stehen auf einem B\xc3\xbcrgersteig .' Original sentence: Three teenagers in a subway playing around . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einem Feld .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei Frauen sitzen auf einem B\xc3\xbcrgersteig .' Original sentence: A brown dog walks in the grass with its tongue hanging out . Translated sentence: b'Ein kleiner Junge springt auf einer Bank .' b'Ein kleiner Junge springt auf einer Stra\xc3\x9fe .' b'Ein kleiner Junge springt auf einer Stra\xc3\x9fe und schaut .' b'Ein kleiner Junge springt auf einer Stra\xc3\x9fe und h\xc3\xa4lt ein Foto .' Original sentence: People sitting in the grass outside a building , taking a break . Translated sentence: b'Eine Gruppe von Menschen und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen und eine Frau stehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einem Tisch .' Original sentence: Shirtless guy staring off in the distance while three woman are walking past a crowd sitting outside a cafe . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf der Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf einer Bank .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf der Stra\xc3\x9fe und h\xc3\xa4lt ein Foto .' Original sentence: Two young boys putting fruit on the bike . Translated sentence: b'Zwei M\xc3\xa4nner spielen sich auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner spielen sich auf einem Feld .' b'Zwei M\xc3\xa4nner spielen sich auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner spielen sich auf einer Stra\xc3\x9fe entlang .' Original sentence: A man in a black t-shirt , cap and jeans is playing drums on an upside down yellow pail . Translated sentence: b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Bank .' b'Ein Mann in einem blauen Hemd und blauer Hose spielt auf einer Stra\xc3\x9fe .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe und h\xc3\xa4lt ein Foto .' Original sentence: A young female artists paints an image of a woman on a wall . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil spielt' b'Ein kleines M\xc3\xa4dchen in einem roten Trikot f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Trikot f\xc3\xa4hrt auf einem Weg .' Original sentence: Two female members of team USA performing a jump high-five surrounded by two other female members . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Stadt .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der N\xc3\xa4he .' Original sentence: A man stirring a pot of liquid in this kitchen . Translated sentence: b'Ein Mann sitzt auf einer Bank .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe und schaut .' b'Ein Mann sitzt auf einer Bank und schaut .' Original sentence: The boy is wakeboarding on the lake . Translated sentence: b'Ein kleiner Junge f\xc3\xa4hrt auf dem Boden .' b'Ein kleiner Junge f\xc3\xa4hrt auf dem Wasser .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem Feld .' b'Ein kleiner Junge f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: A man is working a hotdog stand . Translated sentence: b'Ein Mann spielt' b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einer Bank .' b'Ein Mann sitzt auf einem B\xc3\xbcrgersteig .' Original sentence: A large group of people of various ages and <unk> sit outside together . Translated sentence: b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen und eine Frau stehen auf einem B\xc3\xbcrgersteig .' Original sentence: A blond-haired woman is pouring drinks at a bar . Translated sentence: b'Eine Frau geht auf einer Stra\xc3\x9fe .' b'Eine Frau geht auf einer Bank .' b'Eine Frau geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau geht auf einem Feld .' Original sentence: A small child wearing a blue and white t-shirt happily holding a yellow plastic alligator . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd und blauer Hose spielt' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd und blauer Hose geht auf einer Bank .' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd und blauer Hose geht auf einem B\xc3\xbcrgersteig .' Original sentence: A woman with pink hair dressed in black talks to a man . Translated sentence: b'Eine Frau in einem blauen Hemd und blauer Hose spielt' b'Eine Frau in einem roten Hemd und blauer Hose spielt' b'Eine Frau in einem blauen Hemd und blauer Hose geht .' b'Eine Frau in einem roten Hemd und blauer Hose geht .' Original sentence: The man in a Japanese cooking suit is preparing a meal for two people . Translated sentence: b'Ein Mann sitzt auf einer Bank , w\xc3\xa4hrend ein Mann in der Luft .' b'Ein Mann sitzt auf einer Bank , w\xc3\xa4hrend ein Mann in der Hand .' b'Ein Mann sitzt auf einer Bank , w\xc3\xa4hrend ein Mann in der Luft , die ein Foto .' b'Ein Mann sitzt auf einer Bank , w\xc3\xa4hrend ein Mann in der Luft , die ein Foto zu .' Original sentence: A girl hops across the river , from rock to rock . Translated sentence: b'Ein kleiner Junge f\xc3\xa4hrt auf einer Bank .' b'Ein kleiner Junge f\xc3\xa4hrt auf einer Bank auf der Stra\xc3\x9fe .' b'Ein kleiner Junge f\xc3\xa4hrt auf einer Bank auf einer Stra\xc3\x9fe .' b'Ein kleiner Junge f\xc3\xa4hrt auf einer Bank auf einer Bank .' Original sentence: A male worker with his tool box is kneeling next to two women . Translated sentence: b'Ein Mann sitzt auf einer Bank .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe und schaut .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe und schaut sich .' Original sentence: An older man is opening his arms wide and looking perplexed . Translated sentence: b'Ein Mann sitzt auf einer Bank .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe und schaut .' b'Ein Mann sitzt auf einer Bank und schaut .' Original sentence: A child in a white karate outfit practicing a move Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd spielt' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd spielt' b'Ein kleines M\xc3\xa4dchen in einem roten Oberteil spielt' b'Ein kleines M\xc3\xa4dchen in einem gelben Hemd spielt' Original sentence: Three men in same colored vests are in the outdoors . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei Frauen sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei Frauen sitzen auf einem B\xc3\xbcrgersteig .' Original sentence: A woman takes a picture of a baby wearing a pink hat while a man carries her . Translated sentence: b'Eine Frau in einem roten Hemd und einem blauen Hemd geht auf einer Stra\xc3\x9fe .' b'Eine Frau in einem roten Hemd und einem blauen Hemd geht auf einer Bank .' b'Eine Frau in einem roten Hemd und einem blauen Hemd geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau in einem roten Hemd und einem schwarzen Hemd geht auf einem B\xc3\xbcrgersteig .' Original sentence: A group of mostly asian children sitting at <unk> in blue chairs . Translated sentence: b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Menschen steht auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen steht auf einer Bank .' b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe und schauen .' Original sentence: A young boy in a soccer uniform crying into his <unk> . Translated sentence: b'Ein kleiner Junge springt auf einer Stra\xc3\x9fe .' b'Ein kleiner Junge springt auf einer Bank .' b'Ein kleiner Junge springt auf einem B\xc3\xbcrgersteig .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A happy woman is preparing a <unk> at a coffee shop . Translated sentence: b'Eine Frau geht auf einer Stra\xc3\x9fe .' b'Eine Frau geht auf einer Stra\xc3\x9fe entlang .' b'Eine Frau in einem roten Oberteil spielt' b'Eine Frau in einem roten Oberteil spielt .' Original sentence: A construction worker is driving heavy equipment at a work site . Translated sentence: b'Eine Gruppe von Leuten f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf dem Boden .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf einem Feld .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: A woman runs after making a hit in women 's softball , the catcher rises to her feet . Translated sentence: b'Eine Frau in einem roten Hemd und einem schwarzen Hemd geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau in einem roten Oberteil und einem schwarzen Hemd geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau in einem roten Hemd und einem roten Hemd geht auf einem B\xc3\xbcrgersteig .' b'Eine Frau in einem roten Oberteil und einem roten Hemd geht auf einem B\xc3\xbcrgersteig .' Original sentence: A man in a work uniform passing a tool to another person . Translated sentence: b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe .' b'Ein Mann und eine Frau sitzen auf einer Bank .' b'Ein Mann und eine Frau sitzen auf einem B\xc3\xbcrgersteig .' b'Ein Mann und eine Frau sitzen auf einer Stra\xc3\x9fe und schaut .' Original sentence: A group of people are climbing in cold weather . Translated sentence: b'Eine Gruppe von Menschen gehen auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen gehen auf einem Feld .' b'Eine Gruppe von Leuten spielt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Menschen spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A <unk> about to descend down a mountain with a blue helmet on . Translated sentence: b'Ein kleiner Junge in einem roten Hemd f\xc3\xa4hrt auf dem Boden .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf dem Boden .' b'Ein kleiner Junge in einem roten Hemd f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd f\xc3\xa4hrt auf dem B\xc3\xbcrgersteig .' Original sentence: A man doing handstand on top of a round statue . Translated sentence: b'Ein Mann sitzt auf einer Bank .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einer Stra\xc3\x9fe und schaut .' b'Ein Mann sitzt auf einer Bank und schaut .' Original sentence: A child sitting at a restaurant table holding a paper mask against his face . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt' b'Ein kleines M\xc3\xa4dchen in einem blauen Hemd und blauer Hose spielt' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose geht auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A brown dog wades into a lake to retrieve a stick . Translated sentence: b'Ein kleiner Junge springt auf einer Bank .' b'Ein kleiner Junge springt auf einer Stra\xc3\x9fe .' b'Ein kleiner Junge springt auf einer Bank auf der Stra\xc3\x9fe .' b'Ein kleiner Junge springt auf einer Bank auf der Stra\xc3\x9fe entlang .' Original sentence: A mother teaches her two young boys to fish off of a rocky coast into very blue water . Translated sentence: b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft .' b'Eine Gruppe von Menschen sitzt auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft .' b'Eine Gruppe von Menschen steht auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft , die ein Foto zu .' b'Eine Gruppe von Menschen sitzt auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft , die ein Foto zu .' Original sentence: A little kid is walking next to red banners . Translated sentence: b'Ein kleiner Junge spielt auf einem B\xc3\xbcrgersteig .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem Felsen .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A girl sits on a decorated bike with a younger boy while another girl takes a picture . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf der Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf einer Bank .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf einem B\xc3\xbcrgersteig .' Original sentence: A black dog is retrieving a ball in water . Translated sentence: b'Ein kleiner Junge f\xc3\xa4hrt auf einer Stra\xc3\x9fe .' b'Ein kleiner Junge f\xc3\xa4hrt auf einer Bank .' b'Ein kleiner Junge springt auf einem B\xc3\xbcrgersteig .' b'Ein kleiner Junge f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A man in white pants and a blue shirt is kicking a yellow boxing bag . Translated sentence: b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Stra\xc3\x9fe .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einer Bank .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einem B\xc3\xbcrgersteig .' b'Ein Mann in einem blauen Hemd und blauer Hose geht auf einem Tisch .' Original sentence: Two Indian men participating in a ceremony . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei Frauen sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einem B\xc3\xbcrgersteig .' b'Zwei Frauen sitzen auf einem B\xc3\xbcrgersteig .' Original sentence: A boy with a <unk> nose and writing on his hands is standing in a video rental store . Translated sentence: b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose geht auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose geht auf einer Bank .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose geht auf einem B\xc3\xbcrgersteig .' b'Ein kleines M\xc3\xa4dchen in einem roten Hemd und blauer Hose spielt auf einem B\xc3\xbcrgersteig .' Original sentence: Two silhouetted people paddle a canoe on the ocean during sunset . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und schauen sich .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Hand .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe , w\xc3\xa4hrend ein Mann in der Luft .' Original sentence: People are standing on a crowded subway , and the platform outside is visible through the window . Translated sentence: b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil und eine Frau gehen .' b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil und eine Frau stehen .' b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil und eine Frau stehen auf .' b'Zwei M\xc3\xa4nner , die eine Frau in einem roten Oberteil und eine Frau stehen auf einem B\xc3\xbcrgersteig .' Original sentence: Man scaling wall with fire in hand Translated sentence: b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einer Bank .' b'Ein Mann und eine Frau sitzen' b'Ein Mann und eine Frau gehen .' Original sentence: Two brown dogs are running through the snow . Translated sentence: b'Zwei Zwei M\xc3\xa4nner spielen sich auf einem Feld .' b'Zwei Zwei M\xc3\xa4dchen spielen sich auf einem Feld .' b'Zwei Zwei M\xc3\xa4nner spielen sich auf dem Wasser .' b'Zwei Zwei M\xc3\xa4dchen spielen sich auf dem Wasser .' Original sentence: On stage photo of small band performing for theater audience . Translated sentence: b'Eine Gruppe von Leuten steht auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten spielt auf einem B\xc3\xbcrgersteig .' b'Eine Gruppe von Leuten steht auf einem Feld .' b'Eine Gruppe von Leuten f\xc3\xa4hrt auf einem B\xc3\xbcrgersteig .' Original sentence: A baby in a Christmas outfit looks at the camera . Translated sentence: b'Ein kleiner Junge spielt auf einer Stra\xc3\x9fe .' b'Ein kleiner Junge spielt auf einer Bank .' b'Ein kleines M\xc3\xa4dchen spielt auf einer Stra\xc3\x9fe .' b'Ein kleines M\xc3\xa4dchen spielt auf einer Bank .' Original sentence: A man is sitting next to a computer monitor . Translated sentence: b'Ein Mann sitzt auf einer Stra\xc3\x9fe .' b'Ein Mann sitzt auf einer Bank .' b'Ein Mann sitzt auf dem Boden .' b'Ein Mann sitzt auf einem B\xc3\xbcrgersteig .' Original sentence: This lady has heard a funny joke and laughing . Translated sentence: b'Eine Frau geht auf einer Stra\xc3\x9fe .' b'Eine Frau sitzt auf einer Stra\xc3\x9fe .' b'Eine Frau geht auf einer Bank .' b'Eine Frau sitzt auf einer Bank .' Original sentence: People inside of a building , one is taking a photo . Translated sentence: b'Drei M\xc3\xa4nner in einem roten Oberteil gehen .' b'Drei M\xc3\xa4nner in einem roten Trikot gehen .' b'Drei M\xc3\xa4nner in einem roten Trikot spielen' b'Zwei M\xc3\xa4nner in einem roten Trikot gehen .' Original sentence: Four white dogs with muzzles jump over a red wall . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe entlang .' b'Zwei M\xc3\xa4nner sitzen auf der Stra\xc3\x9fe und schauen .' b'Zwei M\xc3\xa4nner sitzen auf der Stra\xc3\x9fe und unterhalten sich .' Original sentence: The woman with the blue shirt is holding a baby . Translated sentence: b'Eine Frau in einem blauen Hemd und blauer Hose spielt' b'Eine Frau in einem roten Hemd und blauer Hose spielt' b'Eine Frau in einem blauen Hemd und blauer Hose geht .' b'Eine Frau in einem roten Hemd und blauer Hose geht .' Original sentence: Two people are sitting fishing on striped beach chairs in a body of water . Translated sentence: b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und schauen .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und unterhalten sich .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und unterhalten sich auf einem B\xc3\xbcrgersteig .' b'Zwei M\xc3\xa4nner sitzen auf einer Stra\xc3\x9fe und unterhalten sich auf einem Feld .' start infer data:[{'src_sequence_length': <paddle.fluid.core_avx.LoDTensor object at 0x7f90d0df0c70>, 'src': <paddle.fluid.core_avx.LoDTensor object at 0x7f90d0df09b0>}]
能够观察到以下的预测结果输出:
Original sentence:
A man in an orange hat starring at something .
Translated score and sentence:
Ein Mann mit einem orangen Schutzhelm starrt auf etwas .
Ein Mann mit einem gelben Schutzhelm starrt auf etwas .
Ein Mann mit einem gelben Schutzhelm starrt etwas an .
Ein Mann mit einem orangen Schutzhelm starrt etwas an .
总结
端到端的神经网络机器翻译是近几年兴起的一种全新的机器翻译方法。本章中,咱们介绍了NMT中典型的“编码器-解码器”框架。因为NMT是一个典型的Seq2Seq(Sequence to Sequence,序列到序列)学习问题,所以,Seq2Seq中的query改写(query rewriting)、摘要、单轮对话等问题均可以用本教程的模型来解决。
点击连接,使用AI Studio一键上手实践项目吧:https://aistudio.baidu.com/aistudio/projectdetail/127564
下载安装命令
## CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle
## GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
>> 访问 PaddlePaddle 官网,了解更多相关内容。