sb-nmt icon indicating copy to clipboard operation
sb-nmt copied to clipboard

word2id问题

Open yuenoble opened this issue 5 years ago • 1 comments

您好,为什么预测的的起始位置标志<SOS>使用的是pad的id 0 ?还有l2r、r2l标志使用的id 2和3,和一部分词的id重复吗?您的vocab_file里面有l2r、r2l标志吗?

还有在计算encoder input的时候,为什么要把所有的embedding再加一个值?这里remove的功能没看明白。 def transformer_prepare_encoder(inputs, hparams): """Prepare one shard of the model for the encoder. """ # Flatten inputs. ishape_static = inputs.shape.as_list() encoder_input = inputs encoder_padding = common_attention.embedding_to_padding(encoder_input) ignore_padding = common_attention.attention_bias_ignore_padding( encoder_padding) encoder_self_attention_bias = ignore_padding encoder_decoder_attention_bias = ignore_padding

##remove
emb_target_space = common_layers.embedding(
    9, 32, ishape_static[-1], name="target_space_embedding")
emb_target_space = tf.reshape(emb_target_space, [1, 1, -1])
encoder_input += emb_target_space

if hparams.pos == "timing":
    encoder_input = common_attention.add_timing_signal_1d(encoder_input)
return (encoder_input, encoder_self_attention_bias, encoder_decoder_attention_bias)

感谢!

yuenoble avatar Sep 25 '20 03:09 yuenoble

在程序解码时,将 分别当做一个时刻进行处理,所以有pad,原始代码中,,和在词表中分别对应的index为2和3。 Remove的部分为最早tensor2tensor代码中的任务标签向量,训练和测试保持一致即可。

wszlong avatar Sep 25 '20 04:09 wszlong