2016-07-10 10 views
1

OpenCV 3.1を使用しています。イメージのバッチに対してSIFT記述子を計算しました。 各ディスクリプタは、形状が(x, 128)で、私はpickleベースのディスク.tofileを使って各ディスクリプタをディスクに書き込みました。画像のサンプルではxは2000から3000の間ですSIFT記述子をApache Spark kmeansでクラスタリングするにはどうすればいいですか(ピクルスかどうかで)

私はApache Sparkのkmeansをpyspark経由でクラスタリングしたいと考えていますが、私の質問は2部です。

  1. 記述子データを転送するための最良の方法を酸洗さ
  2. は、どのように私は、クラスタ準備データセットにピクルスファイルの束から入手できますか、どのような落とし穴私は(スパーク、酸洗、SIFT)を認識しておく必要があり

私の関心は、シーケンスは、ディスクリプタの生成コードと

答えて

1

ピックですクラスタリング環境の間にいくつかの一般的なストレージがあることを仮定してのpython 2のコードのためにどのようになるかでありますディスクリプタデータを転送する最良の方法は何ですか?

はここで非常に具体的です。ピクルやプロトブフを試すことができます。

ピクルファイルの束からクラスタレディデータセットへの到達方法を教えてください。

  1. データをデシリアライズします。
  2. ベクトルを書き換えるRDDを作成します(つまり、 RDDのすべての要素は128次元ベクトルのフィーチャになります))。
  3. kMeansはこれを何度も使用するため、RDDをキャッシュします。
  4. kMeansモデルをトレーニングして、クラスタを取得します。

は例えば、LOPQの連中は、実行します。firstは、私が言及していますRDDある

C0 = KMeans.train(first, V, initializationMode='random', maxIterations=10, seed=seed) 

Vは、クラスタの数とC0計算されたクラスター(GitHubに線67でそれを確認しています)。

  1. RDDを解凍します。それはクラウドストレージ上の複数のCSVファイルから取り込むますかRDDは次のようになり、したがって、私は必要なRAMの量がアクセス権を持っているスパークどのように大きなを確認する方法があるが
+0

私は火花がRDDを永続化するために始めることができます? – mobcdi

+0

@Michael Sparkは、陳述を遅れて評価します。その結果、アクション*が発生したときにのみ、*変換*ではなく、実際の作業が行われます。その答えは、いいえです。 BTW素敵な質問、私は誇りを持って私のupvoteを持っていた! :)あなたは[kmeans](http://stackoverflow.com/questions/39260820/is-sparks-kmeans-broken)について知っていれば私は本当にここでいくつかの助けを必要とするでしょう... – gsamaras

関連する問題