Hi, I’m reading your paper of HCNAF and the source code of its Pytorch implementation, I have met a question. In the paper, it claims that HCNAF is an invertible flow-based model, which means we could simply get the inverse transformation from latent z to input x with conditions. I want to achieve this inverse transformation but I didn’t find the directly equation or implementation of the inverse transformation in HCNAF. Could you give me some advices?
I have found some clues in source code at line 167~169 of hcnaf_gaussians.py. It seems the transformation between input and output is as following:
output=W_norm×input+Bias
Then it is possible to get input with the following equations:
input=(output-Bias)/W_norm
But the calculations of input×W_norm is achieved with torch.matmul() functions in your implementations, which is not invertible for non-square matrix input. Is there any trick here?
Hi, I’m reading your paper of HCNAF and the source code of its Pytorch implementation, I have met a question. In the paper, it claims that HCNAF is an invertible flow-based model, which means we could simply get the inverse transformation from latent z to input x with conditions. I want to achieve this inverse transformation but I didn’t find the directly equation or implementation of the inverse transformation in HCNAF. Could you give me some advices?
I have found some clues in source code at line 167~169 of hcnaf_gaussians.py. It seems the transformation between input and output is as following:
output=W_norm×input+Bias
Then it is possible to get input with the following equations:
input=(output-Bias)/W_norm
But the calculations of input×W_norm is achieved with torch.matmul() functions in your implementations, which is not invertible for non-square matrix input. Is there any trick here?