cudnn.BLSTM вес и уклоны - PullRequest
       28

cudnn.BLSTM вес и уклоны

0 голосов
/ 04 апреля 2019

Как извлечь веса BLSTM в факел с помощью lua и поместить их в pytorch 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))

...