使用fit_transform进行t-SNE时,Scikit-learn MemoryError

时间:2017-06-26 14:04:18

标签: scikit-learn neural-network keras

我正在尝试使用t-SNE可视化神经网络(在Keras中实现)的输出。在致电MemoryError时我收到了fit_transform。目前我在Windows 10上运行我的代码。

代码:

layer_outputs = [layer.output for layer in encoder.layers]

#layer_outputs[3].output_shape is (None,32)
v_model = Model(input=encoder.input, output=layer_outputs[3])

output = v_model.predict(x_train)

tsne = TSNE(n_components=2, random_state=0)
y = tsne.fit_transform(output) #ERROR HERE
...

1 个答案:

答案 0 :(得分:1)

您需要将输出大小减小到系统可以处理的值。

除此之外,您还可以使用主成分分析(PCA)来降低output的维度,然后再将其输入t-SNE。见这里:http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html