tsne-cuda
tsne-cuda copied to clipboard
Actually use random_seed argument
The Python API has a random_seed attribute for the tsnecuda.TSNE class but it's ignored.
Random seed is tracked as an option within the tsnecuda implementation but it looks hard coded to time-based seed instead. Is there a good reason for this?
I might implement and PR this change unless you indicate otherwise or do it first.
No good reason, we probably just got lazy.
If you submit a PR we will be happy to include it.
Just an FYI: the real reason that this argument is ignored is because I'm not entirely certain that we can enforce strict random seeding. There may be external sources of randomness that are introduced beyond random number generation in our code (for example, by the FAISS library, or by parallelism). Because of this, it's a bit more challenging to make sure that random seeding is actually possible, and I haven't done a full strict analysis of the code, so just note that seeding the random number generator may not actually create reproducible results.