Multicore TSNE:使用Python和Torch包装器的并行t SNE实现 源码
多核t-SNE 这是L. Van der Maaten用python和基于Torch CFFI的包装器对进行的多核修改。 此代码还比1核上的sklearn.TSNE更快。 期待什么 Barnes-Hut t-SNE分两步完成。 第一步:建立用于最近邻居搜索的有效数据结构,并将其用于计算概率。 可以针对数据集中的每个点并行完成此操作,这就是为什么我们可以期望通过使用更多核来实现良好的加速。 第二步:使用梯度下降优化嵌入。 这部分基本上是连续的,因此我们只能在迭代内进行优化。 实际上,某些部分可以有效地并行化,但是暂时还不能全部并行化。 这就是为什么第二步加速不如第一步加速那么重要,但仍有改进的空间。 那么什么时候可以受益于并行化呢? 几乎可以肯定,第二步的计算时间是D常数,主要取决于N 第一部分的时间很大程度上取决于D ,因此对于较小的D time(Step 1) << time(S
用户评论