作家
登录

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

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

PyTorch 也是第一个以随机计算图(stochastic computation graph)情势建立强化进修(RL)库的框架,使得策略梯度(policy gradient)强化进修如反向传播一样易于应用。要将其添加到上述模型中,你只需从新编写主 SPINN 的 for 轮回的前几行,如下所示,使得 Tracker 可以或许定义进行每种解析转移矩阵的概率。

  1. !# nn.functional contains neural network operations without parametersfrom torch.nn import functional as F 
  2. transitions = []for i in range(len(buffers[0]) * 2 - 3):   
  3.     # we know how many steps 
  4.     # obtain raw scores for each kind of parser transition 
  5.     tracker_states, transition_scores = self.tracker(buffers, stacks) 
  6.     # use a softmax function to normalize scores into probabilities, 
  7.     # then sample from the distribution these probabilities define 
  8.     transition_batch = F.softmax(transition_scores).multinomial() 
  9.     transitions.append(transition_batch 

然后,跟着批处理一向运行,模型会得出它猜测的类其余精确程度,我可以经由过程这些随机计算图的节点发出嘉奖旌旗灯号,别的在图的其余部分以传统方法进行反向传播:

  1. # losses should contain a loss per example, while mean and std  
  2. # represent averages across many batches 
  3. rewards = (-losses - mean) / std 
  4. for transition in transitions: 
  5.     transition.reinforce(rewards) 
  6. connect the stochastic nodes to the final loss variable 
  7. # so that backpropagation can find them, multiplying by zero 
  8. # because this trick shouldn’t change the loss value 
  9. loss = losses.mean() + 0 * sum(transitions).sum() 
  10. # perform backpropagation through deterministic nodes and 
  11. # policy gradient RL for stochastic nodesloss.backward() 
  1. from torchtext import data, datasets TEXT = datasets.snli.ParsedTextField(lower=True
  2. TRANSITIONS = datasets.snli.ShiftReduceField() 
  3. LABELS = data.Field(sequential=False)train, dev, test = datasets.SNLI.splits(    TEXT, TRANSITIONS, LABELS, wv_type='glove.42B')TEXT.build_vocab(train, dev, test) 
  4. train_iter, dev_iter, test_iter = data.BucketIterator.splits(    (train, dev, test), batch_size=64) 

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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