Comments (11)
Hm, no idea what's going on. Seems like the compilation issue could be fixed by adding "this->" in a couple of places. I will fix that and push a new version.
But it's still weird that the unit tests fail. Maybe it's an alignment problem on a specific processor? I think @a1k0n pointed out at some point there could be issues if the offset of a node isn't on a multiple of 4 or 8 on some architectures. I wonder if removing the "packed" attribute would help.
from annoy.
Pushed a fix for the compilation issues, and put the packed structs behind a macro. Would be super helpful if you can try to compile using -DNO_PACKED_STRUCTS and see if the unit tests are still failing.
from annoy.
Compilation OK now, thanks!
But tests still fail, in the same way. I'm thinking these two were unrelated issues.
Not sure where to look for problems. Seems like a big in-your-face failure => easier to debug, but I don't have time for that and Amazon is billing me per hour :(
I can still try some quick debugging if you have any suggestions where to look.
from annoy.
Background: I decided to run all the shootout tests from scratch, on a "reproducible" machine = EC2.
Annoy was returning rubbish accuracies so I dug down, found out it's nothing to do with the corpus, as the same thing happens with arbitrary data and even with the annoy's unit tests.
from annoy.
Yeah I'm pretty sure those two issues were unrelated.
I ran it on a micro instance on EC2 and the unit tests succeed so I'm not sure what's going wrong. I might try to set up an beefy EC2 instance and try later. If it's broken I'll try with -DNO_PACKED_STRUCTS to see if that resolves the issue
from annoy.
I forgot to say I tried -DNO_PACKED_STRUCTS as well :)
from annoy.
Downgraded gcc and g++ to version 4.6 => all good, tests pass now. No special compile defines needed.
I still don't know what exactly the problem was, but feel free to close this issue if you wish. Annoy works for me again.
from annoy.
I assume you didn't use windows right? Looks like something changed in 4.7: http://www.bttr-software.de/forum/mix_entry.php?id=11767
from annoy.
Yeah, I assumed it must be something compiler-specific, since Annoy has always worked for me with "older" machines (=older package versions). That's why I tried downgrading!
(OS info is in the first post; haven't tried on Windows)
from annoy.
See #24
from annoy.
Compilation issues were fixed a long time ago – the unit test issues were fixed in #24
from annoy.
Related Issues (20)
- How many trees should I use? HOT 2
- Memory Leak in Annoy (get_nns_by_vector)? HOT 8
- Annoy Object Not Pickle'able HOT 1
- Add sample weights to distance metric? HOT 3
- Source distribution not availabe for 1.17.2 version HOT 2
- Unable to inherit the AnnoyIndex class HOT 2
- doesn't work correctly if torch tensor is input. But also doesn't throw error. Pls add an assertion that this only takes np arrays not torch tensors HOT 2
- _Vector should use position-only parameter for the index HOT 3
- How do you reduce a vector to 2 coordinates HOT 1
- [Distance] What did I do wrong?
- [MSVC] Annoy failed to run test on Windows HOT 1
- Some segment faults HOT 1
- Regarding updating an existing ANNOY model HOT 2
- Anyone tried storing trees and nodes in DynamoDB? HOT 1
- Is there any workaround to be able to use the Chebyshev distance with this library? HOT 1
- from annoy import AnnoyIndex
- Annoy build failed in MSVC x86 mode
- Using a built Annoy tree in a different device HOT 1
- ? HOT 1
- problem building with python3.12 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from annoy.