ConvLSTM did not concat hidden from last round
tomfox1900 opened this issue · 7 comments
In the structure presented in the paper, the hidden from last round is concat with input and then proceed for other operation. But it seems your LSTM did not use the hidden information from previous round.
Can you perhaps show me where you think this is the case?
The last hidden state of the generator LSTM is concatenated with the input and fed into the inference LSTM here:
https://github.com/wohlert/generative-query-network-pytorch/blob/master/gqn/generator.py#L146
So the input fed into inference should be h_(i-1) + h_g + x + v + r, what I'm saying is it seems you missed the h_(i-1) part, which is the hidden state from last round of inference LSTM.
Similarly the generator LSTM.
Another question I have is about the sigma scheme, I noticed you updated the shepardmetzler.py, and the range of data is from 0 to 1 now, but the sigma scheme is set to be 0.7 to 2, not sure if this will affect the log likelihood estimation.
The h_(i-1) part is fed into the LSTM through the state variable, so the information is available to the network. You can see this at the end of the line that i linked.
The sigma scheme is the same as done in the paper. The authors never specify the data range, but it is customary to have it be floating points [0, 1].
Check the following two lines:
https://github.com/wohlert/generative-query-network-pytorch/blob/master/gqn/generator.py#L53
https://github.com/wohlert/generative-query-network-pytorch/blob/master/gqn/generator.py#L62
The hidden state is fed in, but not used, and directly overwritten by the new hidden state.
Yes, I see that is a mistake.
It has been fixed in the recent commit. Thank you for posting this issue.