KlugerLab / FIt-SNE

Fast Fourier Transform-accelerated Interpolation-based t-SNE (FIt-SNE)
Other
593 stars 108 forks source link

Do I need to install FFTW for windows? If I am using Python #79

Closed Dadatata-JZ closed 4 years ago

Dadatata-JZ commented 5 years ago

Hi there, I followed this, and tried to run jupyter notebook example. But it was working and returned the error of filenotfound

image

hfldai commented 4 years ago

Exactly the same with me! Have you solved it?

Dadatata-JZ commented 4 years ago

Exactly the same with me! Have you solved it?

FFT is necessary for running t-SNE efficiently, which is the major contribution of this implementation. It speeds up dramatically indeed. However, installing it requires some (a lot) effort, especially the compiling part (considering I am not used to working on Windows). You may want to check the following implementation "openTSNE", a python library. It has similar settings but optionally requires FFT. Note that giving up FFT slows down the computing speed. If you work on a large dataset and computing time low bound is necessary, you may still want to install FFT.

pavlin-policar commented 4 years ago

Just to clarify on this a little bit, openTSNE relies on the FFT as well, the difference is that FFTW is an optional dependency. If it isn't available, it will use numpy's FFT implementation, which, according to my benchmarks, isn't really much slower than FFTW. This is if you build from source, which you normally don't. You normally install using pip, and openTSNE has prebuilt wheels which means everything just works right away. That was kind of the goal of openTSNE. However, openTSNE is a bit slower than FIt-SNE, so that may be something to consider.

linqiaozhi commented 4 years ago

Some updates had broken FIt-SNE's Windows support, but that is now fixed in FIt-SNE v1.2.1. And it should not require you to install FFTW, nor should you need to compile anything. You just need to extract the zip file into the bin folder...the DLL for FFTW is in that zip file.