CS231N assignment3 RNN

对作业进行一些形象的解释

首先是def rnn_step_forward:

CS231N assignment3 RNN_第1张图片

这里的t时刻其实就是一个句子里面的单词数,为了方便会统一到一个最长长度,对于比这个长度短的部分用null进行填充,并且在方法内部会让Null不进行传播和梯度计算。

我们最终要的是h(shape是(N,T,H)),最终的h经过一系列后处理会得到新的句子

然后是def rnn_forward:

CS231N assignment3 RNN_第2张图片

把rnn_step_forward循环T次 (就得到模型产生的新句子了)

然后是train的forward,写在class Captioning RNN中的loss函数中:

CS231N assignment3 RNN_第3张图片

 这里的emb_caption 是由groundtruth的句子中的单词得来的emb,而在test中,除了第一个emb_caption是groundtruth以外,之后的每一步的emb_caption都是由上一步得到的next_h进行转换得到的。

test部分(写在class CaptioningSolver的sample中):

CS231N assignment3 RNN_第4张图片

最终的captions就是测试集所得到的新句子

你可能感兴趣的:(CS231N,rnn,人工智能,深度学习)