复现MMI

1.安装指定版本tensorflow跑通最基本的seq2seq翻译模型

conda 更新:conda install 版本号

2.学会了attention的实现,使用了attentionMechanism和wrapper包裹cell(忘了具体操作)

学会了beam_search的实现:

先对于encoder的output、state和encoder_inpus_length、batch_size都进行tile_batch,((放在构建decoder_cell之前,因为我的用了attention处理decoder_cell,其中attention需要参数encoder_outputs

之后就是在test阶段使用beam_search,要注意贪心和beam都要有,因为在train阶段是贪心的。

之后不是用training中的GreedyTrainingHelper,而是使用BeamSearchDecoder来训练。

具体传入哪些参数我还不明白,学的不够好,接触新东西接受的很慢,总是抗拒记住它。

3.tf.identity的作用

:之前查过,还是不知道是干嘛的。

4.对于整个训练过程,我还是有些地方不明白,特此记录:

  • 计算结果和loss(是我自己没记住)
    • self.decoder_logit_train = tf.identity(decoder_ouputs.rnn_output)
    • self.decoder_predict_train = tf.argmax(self.decoder_logits_train,axis =-1,name='decoder_pred_train')
    • elif self.mode == 'decode‘:
      • 使用beam_search

5.明天4号再看一次。

6.BeamSearchDecoder在tf中是怎么实现

  • 网上有beamsearch的变式,length_normal(句子不能太短)和coverage penalty(更好的翻译句子?),会不会有帮助呢,没看论文不知道怎么弄的。
  • 1step函数的功能:
    • 先是调用`cell_outputs, next_cell_state = self._cell(inputs, cell_state)`函数执行RNNCell,得到本时刻的输出和状态
    • 接下来会将其shape由[batch_size*beam_szie, vocab_size]转换为[batch_szie, beam_size, vocab_szie]的格式
    • 调用_beam_search_step()函数选择输出并产生下一时刻的输入
    • 问题:如何标识序列是否已经解码完毕呢,就是加一个finished和length变量,记录每个序列是否编码结束以及最终的长度。
  • 4,pytorch的实现版本漂亮多了。
  • 5

7.对于predict的时候,如果由模型的输出生成最后的句子结果,一步一步敲代码理解。

8.attention部分。

直接使用了LuongAttention。大概学习了LuongAttention和B-Attention的不同。

前者是乘法attention,后者是加法attention。

对于lstm中decoder的输入情况,暂且不学习。应该和encoder不一样吧?

9.lstm中,

  • 输出:概率分布向量,对应词典里每个词的一个概率,
  • softmax就是将数字都e一下,然后得到每个所占的比例
  • p(y|x) = softmax(Ws*ht),得到的是
  • log(softmax(x)),我不清楚我们的函数里有没有用到,可能在backward中取了log,因为有score
  • 可能score中用到-log,对,/////loss?

都是干啥的,再次清晰,

10.从昨天看到今天(12.04到12.05跨度好大)

效率不高,不愿意沉下心去看,第一次看别人的完整的代码。下次要改正。要慢慢的///专注的///不着急的///的去看。

  • MMI_rerank里有三个文件,其中一个perl看不懂,另外两个,分别是
  • tune_bleu,导入生成的N-best,导入p(sourve|target)生成的score中的(t|s)和(s|t),不太明白。
  • 和tune_length,在N-best中,直接对于score的(t|s)和(s|t),进行加权,然后找到最好的。对于最好的最基本的函数可以学习一下。
  • 本来就是这样的,最开始看的时候总是想不明白,是没有把这一点牢牢的记住;总是抱着一会儿看代码理解的心态,自己没有主动的猜一猜。
  • 对于p(sourve|target)生成的score中的(t|s)和(s|t)
    •  

猜你喜欢

转载自blog.csdn.net/yagreenhand/article/details/84752383
MMI