奇怪的迭代结果"错误是nan"和使用t-SNE的RuntimeWarning

时间:2016-04-05 01:13:06

标签: python-2.7 nan dimensionality-reduction

我正在使用t-SNE python实现来减少X上的降维,其中包含100个实例,每个实例由cnn可视化的1024个参数描述。

X.shape = [100,1024]

X.dtype = float32

当我跑步时:

Y = tsne.tsne(X)

第一行警告在tsne.py第23行弹出:

  

RuntimeWarning:在日志中遇到零除零     H = Math.log(sumP)+ beta * Math.sum(D * P)/ sumP

然后在以下几行中还有一些类似警告的警告:

  

RuntimeWarning:在分数

中遇到无效值

最后,我在处理过程中的每次迭代后都得到了这个结果:

  

迭代xyz:错误是nan

代码结束时没有"错误"我最后得到一个空的散点图。

修改

- >我用不同的数据集尝试过,它运行得很好。但是我也需要它来处理我的第一组(似乎导致问题的那个)

问题:

有谁知道可能导致这种情况的原因?有解决方法吗?

1 个答案:

答案 0 :(得分:3)

sumP = sum(P)+np.finfo(np.double).eps
H = np.log(sumP) + beta * np.sum(D * P) / sumP;

这应解决问题