Saya ingin melakukan pengurangan dimensionalitas pada hampir 1 juta vektor masing-masing dengan 200 dimensi ( doc2vec
). Saya menggunakan TSNE
implementasi dari sklearn.manifold
modul untuk itu dan masalah utama adalah kompleksitas waktu. Bahkan dengan method = barnes_hut
, kecepatan komputasi masih rendah. Beberapa waktu bahkan kehabisan Memori.
Saya menjalankannya pada prosesor 48 core dengan RAM 130G. Apakah ada metode untuk menjalankannya secara paralel atau memanfaatkan sumber daya yang berlimpah untuk mempercepat proses.
Jawaban:
Anda harus melihat implementasi multicore ini dari t-SNE.
Saya benar-benar mencobanya dan dapat menjamin kinerjanya yang unggul.
sumber
Lihat t-SNE berbasis-percepatan FFT yang dipercepat ( kertas , kode , dan paket Python ).
Dari abstrak:
Makalah ini juga menyertakan contoh dataset dengan sejuta poin dan 100 dimensi (mirip dengan pengaturan OP), dan sepertinya butuh ~ 1 jam.
sumber
Karena, tidak ada jawaban di SO, saya bertanya pada halaman github dan masalah telah ditutup dengan menyatakan balasan berikut oleh GaelVaroquaux ..
sumber
Coba UMAP: https://github.com/lmcinnes/umap
Ini secara signifikan lebih cepat daripada t-SNE.
sumber