-
Notifications
You must be signed in to change notification settings - Fork 9
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
Byte calculation on analysis wo ec missing Cholesky Channels multiplier #11
Comments
I have carefully checked the analysis. For the calculation of total_bits, our calculation is correct. You can see that we change the tensor quant_cholesky_elements to ndarray format by using this code However, for analysis of cholesky_bits, it is wrong. Since len(quant_cholesky_elements) = the number of gaussians, it should be multiplied by 3. We have fixed this problem. Thanks for pointing our error in analyzing the cholesky_bits. |
Thanks for the clear code base and quick response! I've reproduced the file size as reported (total bytes) on a round trip, serializing and deserializing per the analysis_wo_ec method as a reference. The attached added 5 bytes of header in overhead in my test, which is exactly what it should do as that's how big the extra header is. Serialize
Deserialize:
|
Not meant to reopen -- write confirmed the correct bits -- I just have an extra five for the header I am using to stash the dynamic parameters. |
Thank you for your contributions to accurately calculating the storage for GaussianImage. If you don't mind, I would like to integrate this code for storing files into GaussianImage. Alternatively, you could submit a request to do this. |
@Xinjie-Q - here's the code I used for packing bits in a subbyte and a generic one for bit sizes over eight bits. I was toying with packing across sections, by allowing bit_offset to be specified, but that really wasn't worth the effort.
|
Here's a nice start for a Pytorch implementation I came across recently for packing to bit sizes 1, 2 and 4: From their request: That discussion thread shows the evolution in torch to uint1 - uint7: -Charles |
In the gaussianimage_cholesky.py we have a six bit quantizer with three channels:
In the analysis_wo_ec method, the number of channels are missing in the bit measurement:
and
I believe that those should be multiplied by 3.
The text was updated successfully, but these errors were encountered: