2016-12-14 42 views
1

私はJupyter notebookとpython 2.7をanacondaから使用しています。私は、n個の低次元に圧縮する必要がある約250,000次元のデータセットを持っています。私はscikit TSNEを使用しています。 n=5またはn=10のTSNEを実行する場合は、正常に動作します。しかしn=50以上になると、次のメッセージが表示されます。"The kernel appears to have died."エラーメッセージは表示されません。何が問題ですか?それはメモリ過負荷のためですか? Jupyterではなくスクリプトとしてコードを端末で実行する必要がありますか?JupyterノートPCがscikit TSNEの次元削減のためにクラッシュする

マイTSNE機能:

def tsne_to_n_dimensions(n): 
    start=timer() 
    #tsne 
    print diff_df.shape 
    tsne = sklearn.manifold.TSNE(n_components=n,verbose=2) 
    data_nd_tsne =tsne.fit_transform(diff_df) 

    calculate stuff from data_nd_tsne   
    return stuff 

そしてdiff_dfは私がthisthisを経ていますが、私はAを発見したソリューション

+1

:// man7

だから、基本的には通常のTSNEscikitからするのではなく、次の操作を行う必要があります.org/linux/man-pages/man1/top.1.html)。 「scikit」からtSNEのドキュメントを書き留める価値があるかもしれません。「寸法の数を合理的な量に減らすために、別の次元削減方法(例えば、高密度データの場合はPCA、疎データの場合はTruncatedSVD)を使用することを強く推奨します。より多くのヒントについては、Laurens van der MaatenのFAQ [2]を参照してください。 – ncfirth

答えて

3

を見つけることができませんでした

グローバルパンダのデータフレームでありますpython-bhtsneを用いた解法であり、バーンズ・ハットのt-分散確率的近傍埋め込みの実装でもある。

実装することは非常に簡単で、同じパラメータを使用してtsneのすべての実行で同じ出力を取得するオプションを提供します。これは、scikit実装には存在しません。

Laurens van der Maatenのオリジナル実装用のPythonラッパーです。あなたは[トップ](HTTPを使用することにより、プロセスが使用しているどのくらいのメモリを追跡することができます

from bhtsne import tsne 
data_nd_tsne = tsne(diff_df) 
関連する問題