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アルゴリズムにはいくつかのステップがあります。最初のステップの1つは、最近傍を計算することです - これは一般的にあまり時間がかからず、並列化することができます。ここで指し示されている実装は、その最近隣の計算を並列化します。後者のステップは勾配降下です - 通常はほとんどの計算が行われます。これは簡単には並列化されず、この回答で指摘されている実装では連続して実行されます。 – conradlee

+0

私はポイントまで同意しません。上記のリンク先のPython実装とR実装(https://github.com/jkrijthe/Rtsne/issues/16#issuecomment-313717443)によって提供されるベンチマークは、アルゴリズムを実行するのにかかる時間。たとえスピードアップがtSNEの特定のステップでのみ明らかであっても、私はそれをスピードアップすることはありません。 – JulianS

+0

Multicore-TSNEの実装が大幅に高速化されていることを確認できます。残念ながら、このライブラリは3つの(perplexity、n_iter、angle)パラメータのみをサポートし、警告を出さずに他のものを無視します。 – Timomo

関連する問題