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