Je voudrais faire une réduction de dimensionnalité sur près d'un million de vecteurs chacun avec 200 dimensions ( doc2vec
). j'utiliseTSNE
implémentation du sklearn.manifold
module pour cela et le problème majeur est la complexité du temps. Même avec method = barnes_hut
, la vitesse de calcul est encore faible. Un certain temps, même il manque de mémoire.
Je l'exécute sur un processeur à 48 cœurs avec 130 Go de RAM. Existe-t-il une méthode pour l'exécuter en parallèle ou utiliser la ressource abondante pour accélérer le processus.
Réponses:
Vous devez regarder cette implémentation multicœur de t-SNE.
Je l'ai essayé et je peux garantir ses performances supérieures.
la source
Consultez le t-SNE basé sur l'interpolation accélérée par FFT ( papier , code et package Python ).
Du résumé:
L'article comprend également un exemple d'un ensemble de données avec un million de points et 100 dimensions (similaire au paramètre OP), et cela semble prendre environ 1 heure.
la source
Depuis, il n'y a pas de réponses dans SO, je me suis posé la question dans la page github et le problème a été clos en énonçant la réponse suivante de GaelVaroquaux ..
la source
Essayez UMAP: https://github.com/lmcinnes/umap
Il est nettement plus rapide que le t-SNE.
la source