如何用PyTorch成功递归神经网络
当创立模型时,SPINN.__init__被调用了一次性;它调配和初始化参数,但不口头任何神经网络操作或构建任何类型的计算图。在每个新的批处置数据上运转的代码由 SPINN.forward方法定义,它是用户成功的方法中用于定义模型向前环节的规范 PyTorch 称号。上方形容的是堆栈操作算法的一个有效成功,即在普通 Python中,在一批缓冲区和堆栈上运转,每一个例子都对应一个缓冲区和堆栈。我经常使用转移矩阵(transition)包括的「shift」和「reduce」操作汇合启动迭代,运转Tracker(假设存在),并遍历批处置中的每个样原本运行「shift」操作(假设恳求),或将其参与到须要「reduce」操作的样本列表中。而后在该列表中的一切样本上运转Reduce 层,并将结果推送回到它们各自的堆栈。