2016-03-25 9 views
1

非常に大きな2つのDask配列X(35000 x 7500)とY(7500 x 10)のドットプロダクトを実行しようとしています。内積としても、私はHDF5Python:Dask arrayのドットプロダクト

f = h5py.File('output.hdf5') 
f['output'] = X.dot(Y) 

に格納していますが、2番目のコマンドもそのほとんど1時間かかわらず任意の出力を与えていない非常に大きくなります。なにが問題ですか?より速い技術がありますか? XとYを作成中に "チャンク"の問題がありますか?

答えて

1

.to_hdf5メソッドまたはda.storeの機能を考慮してください。

>>> X.dot(Y).to_hdf5('output.hdf5', 'output') 

または

>>> output = f.create_dataset('/output', X.dot(Y).shape, X.dot(Y).dtype) 
>>> da.store(X.dot(Y), output) 

to_hdf5方法は、おそらくあなたのために簡単です。 da.storeメソッドは、他のフォーマットにも一般的です。 [ここ]

numpyのアレイを使用するようにハードコードされて何をf['output'] = ...を言うとき、あなたが使っているH5Py(中__setitem__機能。

Here is the appropriate section in the documentation.

+0

サーI見たあなたの答え(http://stackoverflow.com/question/34434217/no-dot-product-in-dask-num-in-numpy)だから、どのようなタイプのチャンクが私に最適なのかを知るにはどうすればいいですか? – Kavan

+0

to_hdf5メソッドは、 – MRocklin

+0

私のXはfloat32とY float96です。 "TypeError:サポートされていないフロートサイズ"を表示しています。手がかりはありますか? – Kavan

関連する問題