论文笔记: MOGRIFIER LSTM

2020 ICLR

  • 修改传统LSTM
    • 当前输入和隐藏状态充分交互,从而获得更佳的上下文相关表达

1 Mogrifier LSTM

  • LSTM的输入X和隐藏状态H是完全独立的

     

  • ——>论文提出了Mogrifier LSTM

     

      • i=0的时候,就是传统LSTM的输入和hidden state
      • i为奇数的时候,动输入x
      • i为偶数的时候,动隐藏状态h

2 实验

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个使用Mogrifier LSTM的简单示例代码: ```python import torch import torch.nn as nn class MogrifierLSTM(nn.Module): def __init__(self, input_size, hidden_size, num_layers): super(MogrifierLSTM, self).__init__() self.hidden_size = hidden_size self.num_layers = num_layers self.input_gate = nn.Linear(input_size, hidden_size) self.forget_gate = nn.Linear(input_size, hidden_size) self.output_gate = nn.Linear(input_size, hidden_size) self.cell_gate = nn.Linear(input_size, hidden_size) self.mogrify_input = nn.Linear(hidden_size, hidden_size) self.mogrify_forget = nn.Linear(hidden_size, hidden_size) self.mogrify_output = nn.Linear(hidden_size, hidden_size) self.mogrify_cell = nn.Linear(hidden_size, hidden_size) def forward(self, input): batch_size = input.size(0) hidden = (torch.zeros(self.num_layers, batch_size, self.hidden_size), torch.zeros(self.num_layers, batch_size, self.hidden_size)) for i in range(self.num_layers): hx, cx = hidden ix = self.input_gate(input) + self.mogrify_input(cx[i]) fx = self.forget_gate(input) + self.mogrify_forget(cx[i]) ox = self.output_gate(input) + self.mogrify_output(cx[i]) gx = self.cell_gate(input) + self.mogrify_cell(cx[i]) input_gate = torch.sigmoid(ix) forget_gate = torch.sigmoid(fx) output_gate = torch.sigmoid(ox) cell_gate = torch.tanh(gx) cy = (forget_gate * cx[i]) + (input_gate * cell_gate) hy = output_gate * torch.tanh(cy) input = hy hidden = (hy.unsqueeze(0), cy.unsqueeze(0)) return hidden # 使用示例 input_size = 10 hidden_size = 20 num_layers = 2 seq_length = 5 batch_size = 3 # 创建Mogrifier LSTM模型 model = MogrifierLSTM(input_size, hidden_size, num_layers) # 创建随机输入张量 input = torch.randn(seq_length, batch_size, input_size) # 前向传播 output = model(input) print(output) ``` 请注意,这只是一个简单的示例代码,实际应用中可能需要进行更多的调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值