作家
登录

如何用PyTorch实现递归神经网络?

作者: 来源: 2017-04-26 13:03:04 阅读 我要评论

  •                 # object itself. 
  •                 tracker_states, _ = self.tracker(buffers, stacks) 
  •             else
  •                 tracker_states = itertools.repeat(None) 
  •             lefts, rights, trackings = [], [], [] 
  •             batch = zip(trans_batch, buffers, stacks, tracker_states) 
  •             for transition, buf, stack, tracking in batch: 
  •                 if transition == SHIFT: 
  •                     stack.append(buf.pop()) 
  •                 elif transition == REDUCE: 
  •                     rights.append(stack.pop()) 
  •                     lefts.append(stack.pop()) 
  •                     trackings.append(tracking) 
  •             if rights: 
  •                 reduced = iter(self.reduce(lefts, rights, trackings)) 
  •                 for transition, stack in zip(trans_batch, stacks): 
  •                     if transition == REDUCE: 
  •                         stack.append(next(reduced)) 
  •         return [stack.pop() for stack in stacks] 
  • 在调用 self.tracker 或 self.reduce 时分别运行 Tracker 或 Reduce 子模块的向前办法,该办法须要在样本列表上应用前向操作。在主函数的向前办法中,在不合的样本长进行自力的操作是有意义的,即为批处理中每个样本供给分别的缓冲区和客栈,因为所有受益于批处理履行的重度应用数学和须要 GPU 加快的操作都在 Tracker 和 Reduce 中进行。为了更干净地编写这些函数,我将应用一些 helper(稍后将定义)将这些样本列表转化成批处理张量(tensor),反之亦然。

    我欲望 Reduce 模块主动批处理其参数以加快计算,然后解批处理(unbatch)它们,以便可以零丁推送和弹出。用于将每对左、右子短语表达组合成父短语(parent phrase)的实际组合函数是 TreeLSTM,它是通俗轮回神经收集单位 LSTM 的变型。该组合函数请求每个子短语的状况实际上由两个张量构成,一个隐蔽状况 h 和一个存储单位(memory cell)状况 c,而函数是应用在子短语的隐蔽状况操作的两个线性层(nn.Linear)和将线性层的结不雅与子短语的存储单位状况相浇忧⒛非线性组合函数 tree_lstm。在 SPINN 中,这种方法经由过程添加在 Tracker 的隐蔽状况下运行的第 3 个线性层进行扩大。

    图 2:TreeLSTM 组合函数增长了第 3 个输入(x,在这种情况下为 Tracker 状况)。鄙人面所示的 PyTorch 实现中,5 组的三种线性变换(由蓝色、黑色和红色箭头的三元组表示)组合为三个 nn.Linear 模块,而 tree_lstm 函数履行位于框内的所有计算。图来自 Chen et al. (2016)。


      推荐阅读

      未来的人们,将会如何看待我们现在的机器人?

    【义务编辑:wangxueyan TEL:(010)68476606】 >>>详细阅读


    本文标题:如何用PyTorch实现递归神经网络?

    地址:http://www.17bianji.com/lsqh/34965.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)