-
Notifications
You must be signed in to change notification settings - Fork 174
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
Equivariance error issue #41
Comments
Thanks for sharing the investigation. |
Hi Axel I am conducting some similar experiments and running to issues as well. Were you able to figure out what the problem was? Thanks |
I have no idea |
Thanks a lot for investigating the problem and find a solution. Do you want to make a pull request ? |
See Issue jonkhler#41 . The FFT coefficients of certain frequencies were inaccurate due to numeric/rounding errors in powf(s, 0.5).
* Change from powf to sqrtf See Issue #41 . The FFT coefficients of certain frequencies were inaccurate due to numeric/rounding errors in powf(s, 0.5). * Change from powf to sqrtf in s2_mm as well
Hi! Thank you for this work!
Following paragraph 5.1 of your paper, I am trying to check the equivariance of the convolution layers. I have a question about Figure 3. Is the error in 10^-6 magnitude for the four plots?
MAIN ISSUE:
I tried to run the code below. It synthesizes 500 random feature maps and 500 random rotation around the Z-axis. Then, it measures the equivariance error:
mean(STD(Rotation(Layer(DATA)) - Layer(Rotation(DATA))) / STD(Layer(DATA)))
The layer is an S2 convolution. I fixed the input and output bandwidth to be equal. I observed that the equivariance error depends a lot on that bandwidth.
For b_in<25, the error has a magnitude of 10^-7.
For b_in>25, the error has a magnitude of 10^-1.
I understand that the 10^-7 error is due to numerical precision and means that the layer is equivariant. But I don't know what I do wrong to get a 10^-1 error for a larger bandwidth. I currently work with data with bandwidth 32 and my model doesn't seem to be equivariant due to this problem. Does it come from numerical precision? Can I do something to solve it?
NOTE:
I tried to run it on my CPU or GPU, but the problem is still here. I tried to change the size of the float but with no effect.
I also tried to change the output bandwidth to b_out=b_in//2.
For b_in<4, the error has a magnitude of 10^-7.
For b_in>4, the error has a magnitude of 10^-1.
The text was updated successfully, but these errors were encountered: