如何用lua提取火炬中BLSTM的重量并将其放入火炬BLSTM中:
示例
# torch
rnn = c`udnn.BLSTM(1280, 256, 5, false, 0.5)`
# pytorch
nn.LSTM(input_size=1280, hidden_size=256, num_layers=5,
bidirectional=True, dropout=0.5)
要显示权重和偏差,我们可以使用:
rnn:weights()
rnn:biaises()
这是rnn:weights()
{ 1 :
{
1 : CudaTensor - size: 327680
2 : CudaTensor - size: 327680
3 : CudaTensor - size: 327680
4 : CudaTensor - size: 327680
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 2 :
{
1 : CudaTensor - size: 327680
2 : CudaTensor - size: 327680
3 : CudaTensor - size: 327680
4 : CudaTensor - size: 327680
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 3 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 4 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 5 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 6 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 7 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 8 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 9 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} 10 :
{
1 : CudaTensor - size: 131072
2 : CudaTensor - size: 131072
3 : CudaTensor - size: 131072
4 : CudaTensor - size: 131072
5 : CudaTensor - size: 65536
6 : CudaTensor - size: 65536
7 : CudaTensor - size: 65536
8 : CudaTensor - size: 65536
} }
在这里看起来权重是连接在一起的,如何计算每个过滤器的高度和宽度。另外,我希望有20个权重和偏差张量(5个(层)* 2个(方向)* 2个(权重,weights_reverse))