3

是否有與t-SNE算法的並行版本的Python庫? 還是存在多核/並行t-SNE算法?t-SNE的並行版本

我試圖減少我的詞彙量中使用t-SNE的所有word2vecs的維度(300d - > 2d)。

問題:詞彙大小約爲130000,並且爲它們進行t-SNE花費的時間太長。

回答

2

是的,有一個並行版本的t-SNE的barnes-hutt實現。 https://github.com/DmitryUlyanov/Multicore-TSNE

+0

這個實現可能會讓任何希望解析大部分tsne的人失望。 tsne算法有幾個步驟。第一步是計算最近的鄰居 - 這通常不需要很長時間並且可以並行化。這裏指出的實現並行化了最近鄰居計算。後一步是梯度下降 - 這通常是大多數計算髮生的地方。這並不容易並行化,並且在此答案中指出的實現中以串行方式運行。 – conradlee

+0

我不同意某一點 - python實現(上面鏈接)和R實現(https://github.com/jkrijthe/Rtsne/issues/16#issuecomment-313717443)提供的基準測試顯示運行算法所花費的時間量。即使加速只在tSNE的某個步驟中才明顯,我也會在沒有加速的情況下加速。 – JulianS

+0

我可以確認Multicore-TSNE的實施速度明顯加快。不幸的是,這個庫只支持3個(困惑,n_iter,角度)參數,並且在不給出警告的情況下忽略其他參數。 – Timomo