Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Incompatible rnn version #5

Open
graulef opened this issue Mar 31, 2017 · 0 comments
Open

Fix: Incompatible rnn version #5

graulef opened this issue Mar 31, 2017 · 0 comments

Comments

@graulef
Copy link
Contributor

graulef commented Mar 31, 2017

After the first batch was evaluated, I kept getting this error:

imi@imi-All-Series:~/graulef/deep-soli$ th net/main.lua --file ../datapre --list config/file_half.json --load ../uni_image_np_50.t7 --inputsize 32 --inputch 4 --label 11 --datasize 32 --datach 4 --batch 16 --maxseq 40 --cuda --cudnn
[eval] data with 1364 seq
[net] loading model ../uni_image_np_50.t7
nn.Sequencer @ nn.Recursor @ nn.MaskZero @ nn.Sequential {
  [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> (7) -> (8) -> (9) -> (10) -> (11) -> (12) -> (13) -> (14) -> (15) -> (16) -> (17) -> (18) -> (19) -> (20) -> (21) -> output]
  (1): cudnn.SpatialConvolution(4 -> 32, 3x3, 2,2)
  (2): nn.SpatialBatchNormalization (4D) (32)
  (3): cudnn.ReLU
  (4): cudnn.SpatialConvolution(32 -> 64, 3x3, 2,2)
  (5): nn.SpatialBatchNormalization (4D) (64)
  (6): cudnn.ReLU
  (7): nn.SpatialDropout(0.400000)
  (8): cudnn.SpatialConvolution(64 -> 128, 3x3, 2,2)
  (9): nn.SpatialBatchNormalization (4D) (128)
  (10): cudnn.ReLU
  (11): nn.SpatialDropout(0.400000)
  (12): nn.Reshape(1152)
  (13): nn.Linear(1152 -> 512)
  (14): nn.BatchNormalization (2D) (512)
  (15): cudnn.ReLU
  (16): nn.Dropout(0.5, busy)
  (17): nn.Linear(512 -> 512)
  (18): nn.LSTM(512 -> 512)
  (19): nn.Dropout(0.5, busy)
  (20): nn.Linear(512 -> 13)
  (21): cudnn.LogSoftMax
}
/home/imi/graulef/datapre/0_12_20/label.json
/home/imi/graulef/datapre/0_10_18/label.json
/home/imi/graulef/datapre/0_6_8/label.json
/home/imi/graulef/datapre/0_3_0/label.json
/home/imi/graulef/datapre/0_12_22/label.json
/home/imi/graulef/datapre/0_13_10/label.json
/home/imi/graulef/datapre/0_12_3/label.json
/home/imi/graulef/datapre/0_5_14/label.json
/home/imi/graulef/datapre/0_10_15/label.json
/home/imi/graulef/datapre/0_2_5/label.json
/home/imi/graulef/datapre/0_3_5/label.json
/home/imi/graulef/datapre/0_3_18/label.json
/home/imi/graulef/datapre/0_12_21/label.json
/home/imi/graulef/datapre/0_5_21/label.json
/home/imi/graulef/datapre/0_10_20/label.json
/home/imi/graulef/datapre/0_13_6/label.json
Evaluation passed
2
just used :norm without error
/home/imi/torch/install/bin/luajit: /home/imi/torch/install/share/lua/5.1/rnn/MaskZero.lua:55: invalid arguments: CudaTensor CudaTensor number
expected arguments: *CudaTensor* CudaByteTensor float
stack traceback:
        [C]: in function 'maskedFill'
        /home/imi/torch/install/share/lua/5.1/rnn/MaskZero.lua:55: in function 'recursiveMask'
        /home/imi/torch/install/share/lua/5.1/rnn/MaskZero.lua:99: in function 'updateOutput'
        /home/imi/torch/install/share/lua/5.1/rnn/Recursor.lua:27: in function 'updateOutput'
        /home/imi/torch/install/share/lua/5.1/rnn/Sequencer.lua:94: in function 'forward'
        ./net/rnntrain.lua:33: in function 'batchEval'
        ./net/train.lua:25: in function 'epochEval'
        ./net/train.lua:47: in function 'train'
        net/main.lua:45: in main chunk
        [C]: in function 'dofile'
        .../imi/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
        [C]: at 0x004065d0

It can be fixed by warping the part of code in the rnn library. Line number might differ, just look for the line of code where the mask is applied:output:maskedFill(zeroMask, 0). The file you wanna fix is /home/usr/torch/install/share/lua/5.1/rnn/MaskZero.lua. Warping works like this:

      if(zeroMask:type() == 'torch.CudaTensor') then
        zeroMask = zeroMask:cudaByte()
      end
      output:maskedFill(zeroMask, 0)
      if(zeroMask:type() == 'torch.CudaByteTensor') then
        zeroMask = zeroMask:cuda()
      end

This solved the issue for me, hope this helps if anyone has the same problem!

@graulef graulef changed the title Incompatible rnn version (fixed) Fixed: Incompatible rnn version Mar 31, 2017
@graulef graulef changed the title Fixed: Incompatible rnn version Fix: Incompatible rnn version Apr 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant