【发布时间】:2019-08-24 23:23:08
【问题描述】:
我想要一个输入大小为 7、隐藏大小为 10、输出大小为 2 的 RNN。
因此,对于形状 99x1x7 的输入,我期望形状为 99x1x2 的输出。
仅对于 RNN,我得到:
model = nn.RNN(input_size=7, hidden_size=10, num_layers=1)
output,hn=model(torch.rand(99,1,7))
print(output.shape) #torch.Size([99, 1, 10])
print(hn.shape) #torch.Size([ 1, 1, 10])
所以我假设我仍然需要在它后面加上Linear:
model = nn.Sequential(nn.RNN(input_size=7, hidden_size=10, num_layers=1),
nn.Linear(in_features=10, out_features=2))
model(torch.rand(99,1,7))
Traceback (most recent call last):
File "train_rnn.py", line 80, in <module>
main()
File "train_rnn.py", line 25, in main
model(torch.rand(99,1,7))
File "/home/.../virtual-env/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/home/.../virtual-env/lib/python3.6/site-packages/torch/nn/modules/container.py", line 92, in forward
input = module(input)
File "/home/.../virtual-env/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
File "/home/.../virtual-env/lib/python3.6/site-packages/torch/nn/modules/linear.py", line 92, in forward
return F.linear(input, self.weight, self.bias)
File "/home/.../virtual-env/lib/python3.6/site-packages/torch/nn/functional.py", line 1404, in linear
if input.dim() == 2 and bias is not None:
AttributeError: 'tuple' object has no attribute 'dim'
我猜这是因为Linear 接收到RNN.forward 产生的元组。但是我应该如何将两者结合起来呢?
【问题讨论】:
标签: python pytorch recurrent-neural-network