【问题标题】:Scikit-learn MemoryError when using fit_transform for t-SNE将 fit_transform 用于 t-SNE 时的 Scikit-learn MemoryError
【发布时间】:2017-11-29 09:41:36
【问题描述】:

我正在尝试使用 t-SNE 可视化神经网络(在 Keras 中实现)的输出。我在拨打fit_transform 时收到MemoryError。目前我正在 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
...

【问题讨论】:

  • Windows 还是 Unix?
  • @mkaran 窗口
  • output 中有多少预测?你试过更少的样品吗?您是否尝试过使用 PCA 降低维度?
  • 您认为我们可以在这里做什么?谁知道output 有多大?对于curious。
  • @matchifang 那么为什么对核心问题没有反应:你的输出数据有多大?隐藏在我的第一条评论中,可能还有一个解决方案(取决于您的数据大小和您在 python 方面的基本技能)。

标签: scikit-learn neural-network keras


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 2019-10-22
    • 2014-08-06
    • 1970-01-01
    • 2015-06-23
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    相关资源
    最近更新 更多