pytorch下rnn的一些思考

import torch

x = torch.ones(1,1,1)
b0 = torch.zeros(2,1,1)
# out: 3,1,5
rnn = torch.nn.RNN(1,1,num_layers=2,batch_first=False)
wb4 = list(rnn.parameters())

o,h =rnn(x,b0)
# print(o.shape,h.shape)
print(o)
print(h)
print('++++++')

whx = wb4[0]
print('wb4',wb4)
print('++++++')
bw = wb4[2]
whh = wb4[1]
bh = wb4[3]
rst1 = x@whx.t()
print(rst1)
rst2 = bw
print(rst2)
rst3 = b0@whh.t()
print(rst3)
rst4 = bh
print(rst4)
print('+++++++')
print(torch.tanh(rst1+rst2+rst3+rst4))


以上代码说名一个问题,对于双层rnn,求出的ht的shape=(num_layers,batchsize,hiddendim),也就是说包含两个输出的隐藏。ht[0]是下面的那一个,ht[1]是上面的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值