Skip to content

Questions about update() function in EntropyBottleneck & GaussianConditional #311

Answered by YodaEmbedding
JasonLSC asked this question in Q&A
Discussion options

You must be logged in to vote

First, I’m a bit unclear about the need to run the update() function once at test time before actual encoding. Simply put, what is this preparation for? Why is update() not needed during training?

.update() fills in the _quantized_cdf table, which is used during runtime, but not during training.

During training, we measure the rate using the negative log-likelihoods (NLL) of $\hat{y}$. That gives us a differentiable function for rate. Thus, we don't actually need to losslessly compress and then losslessly decompress, since that's just the identity function anyways. (Also, it would be difficult to get a differentiable function for rate from just the length of a losslessly compressed bits…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by JasonLSC
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants