Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 神经机器翻译任务中的句子表示 我见过很多人从事神经机器翻译工作。通常,在训练网络之前,他们在、等标记之间表示自己的句子。当然,指定句子的开头和结尾是合乎逻辑的解决方案,但我想知道神经网络如何理解字符串(或其他)表示句子的结尾?_Neural Network_Recurrent Neural Network_Machine Translation_Seq2seq_Encoder Decoder - Fatal编程技术网

Neural network 神经机器翻译任务中的句子表示 我见过很多人从事神经机器翻译工作。通常,在训练网络之前,他们在、等标记之间表示自己的句子。当然,指定句子的开头和结尾是合乎逻辑的解决方案,但我想知道神经网络如何理解字符串(或其他)表示句子的结尾?

Neural network 神经机器翻译任务中的句子表示 我见过很多人从事神经机器翻译工作。通常,在训练网络之前,他们在、等标记之间表示自己的句子。当然,指定句子的开头和结尾是合乎逻辑的解决方案,但我想知道神经网络如何理解字符串(或其他)表示句子的结尾?,neural-network,recurrent-neural-network,machine-translation,seq2seq,encoder-decoder,Neural Network,Recurrent Neural Network,Machine Translation,Seq2seq,Encoder Decoder,它没有 在推理时,有一个硬编码规则,即如果生成了该标记,序列就完成了,底层神经模型将不再需要下一个标记 source_seq = tokenize('This is not a test.') print(source_seq) 在这一点上,您会得到如下结果: ['',Thi######################### 现在,我们以相同的格式构建目标序列: target_seq = [ '<BOS>' ] while true: token = model.gene

它没有

在推理时,有一个硬编码规则,即如果生成了该标记,序列就完成了,底层神经模型将不再需要下一个标记

source_seq = tokenize('This is not a test.')
print(source_seq)
在这一点上,您会得到如下结果:

['',Thi#########################

现在,我们以相同的格式构建目标序列:

target_seq = [ '<BOS>' ]

while true:
    token = model.generate_next_token(source_seq, target_seq)
    if token == '<EOS>':
       break
    seq.append(token)
target_seq=['']
尽管如此:
令牌=模型。生成下一个令牌(源令牌,目标令牌)
如果令牌=='':
打破
序号追加(令牌)
模型本身仅预测最有可能给出当前状态的下一个标记(到目前为止的输入序列和输出序列)

它不能退出环路,就像它不能把你的机器插头从墙上拔出来一样

注意,这不是这里唯一的硬编码规则。另一个是决定从第一个标记开始,并且只追加-从不预结束,从不删除…-就像一个人说话一样。

不是

在推理时,有一个硬编码规则,即如果生成了该标记,序列就完成了,底层神经模型将不再需要下一个标记

source_seq = tokenize('This is not a test.')
print(source_seq)
在这一点上,您会得到如下结果:

['',Thi#########################

现在,我们以相同的格式构建目标序列:

target_seq = [ '<BOS>' ]

while true:
    token = model.generate_next_token(source_seq, target_seq)
    if token == '<EOS>':
       break
    seq.append(token)
target_seq=['']
尽管如此:
令牌=模型。生成下一个令牌(源令牌,目标令牌)
如果令牌=='':
打破
序号追加(令牌)
模型本身仅预测最有可能给出当前状态的下一个标记(到目前为止的输入序列和输出序列)

它不能退出环路,就像它不能把你的机器插头从墙上拔出来一样


注意,这不是这里唯一的硬编码规则。另一个是决定从第一个标记开始,并且只追加-从不预结束,从不删除…-就像人类说话一样。

@BurhanBilen然后模型将没有机会学习预测该标记,你将得到一个有效的无限循环。然后它将生成无限长的句子,除非你使用其他规则来切断它,比如“长度大于200时停止”自回归序列生成(如果你不这么做,你会知道的)一次产生一个单词,直到你产生一个特殊的“停止符号”单词EOS。非常感谢,你们两人都做了非常好和清楚的解释,现在它更容易理解和清楚了。Burhan,我添加了一个注释,作为一个说左分支语言和右分支语言的人,你可能会感兴趣。@BurhanBilen然后是t该模型将没有机会学习预测该标记,您将得到一个有效的无限循环。然后,它将生成无限长的句子,除非您使用其他规则来切断它,例如“如果长度大于200,则停止”自回归序列生成(如果您没有这样做,您将知道)一次产生一个单词,直到你产生一个特殊的“停止符号”单词EOS。非常感谢你们,非常好和清晰的解释,现在它更容易理解和清楚。Burhan,我添加了一个注释,作为一个左分支语言和右分支语言的演讲者,你可能会感兴趣。