This is based on the 10XDev/tsne fork of L.J.P. van der Maaten BH-tSNE implementation.
It has fixes to allow this to run in Python 3 and performance has been significantly increased with OpenMP parallelism. (see: tsne-perf-test)
Note: While Scikit-learn v0.17 has a tsne implementation, this implementation performs significantly faster than scikit-learn's. If you need speed, use this.
A python (cython) wrapper for Barnes-Hut-SNE aka fast-tsne.
We forked 10XDev's implementation and openmp enabled the code.
This library has been added to pypi as tsne-mp
pip install tsne-mp
It requires openmp support.
- OSX -
brew install libomp
- linux - 'sudo apt-get install libgomp1'
- Windows - Included with Visual Studio C++
Basic usage:
from tsne import bh_sne
X_2d = bh_sne(X)
Or, the wheels also contain an executable that can be used from the command-line as described in the original project.
See Barnes-Hut-SNE (2013), L.J.P. van der Maaten. It is available on arxiv.