4 ms·
It’s not 1024 cells. The size of the hidden vector is 1024. Which is roughly an order of megabyte per cell (1024x1024 matrix). Here they have a cell per word, w
by pmalynin 8y ago
It’s not 1024 cells. The size of the hidden vector is 1024. Which is roughly an order of megabyte per cell (1024x1024 matrix). Here they have a cell per word, which is reasonable.
- minimaxir 8y agoMax-Pooling a 1024-cell output LSTM will result in a 1024-sized vector. Looking at the code for the Encoder (https://github.com/facebookresearch/LASER/blob/fec5c7d63daa2bea9d127e8252b10e87278586c0/source/embed.py#L169 https://github.com/facebookresearch/LASER/blob/fec5c7d63daa2...), each LSTM has the same amount of hidden cells. (although the default parameters of that class don't quite match the ones used in the post; so I assume it's 512x2x5).
- pmalynin 8y agoYes but they're not maxpooling in the last dimension. They're max pooling over the sequence length [0], (the other way doesn't really make sense in this context). The output size is 1024, the hidden vector size is 512 but they're using bidirectional LSTMs which concatenates the outputs of each direction -- so the total is 1024 [1]. [0] https://github.com/facebookresearch/LASER/blob/fec5c7d63daa2bea9d127e8252b10e87278586c0/source/embed.py#L246 https://github.com/facebookresearch/LASER/blob/fec5c7d63daa2... [1] https://pytorch.org/docs/stable/nn.html#lstm https://pytorch.org/docs/stable/nn.html#lstm
- minimaxir 8y agoGotcha, that makes sense. (I'm less familiar with dimension ordering in PyTorch)