2017-06-02 33 views
1

同じ2つのデータセット、それぞれdataおよびlabelsを含む複数のHDF5ファイルがあります。これらのデータセットは多次元配列であり、最初の次元は両方の次元が同じです。複数のHDF5ファイルのデータセットを仮想データセットに結合

私はHDF5ファイルを1つのファイルに結合したいと思いますが、仮想データセット[h5py reference]、[HDF5 tutorial in C++]を作成するのが最善の方法だと思います。しかし、私はPythonとh5pyで例を見つけませんでした。

仮想データセットには何か別の選択肢がありますか、またはh5pyを使用している例について知っていますか?

答えて

0

は、誰かがそれを試してみました。例はここにありますが、残念ながら私はそれを動作させることができず、構文的にも間違っているようです。 https://github.com/aaron-parsons/h5py/blob/1e467f6db3df23688e90f44bde7558bde7173a5b/docs/vds.rst#using-the-vds-feature-from-h5py

f = h5py.File("VDS.h5", 'w', libver='latest') 
file_names_to_concatenate = ['1.h5', '2.h5', '3.h5', '4.h5', '5.h5'] 
entry_key = 'data' # where the data is inside of the source files. 
sh = h5.File(file_names_to_concatenate[0],'r')[entry_key].shape # get the first ones shape. 

TGT = h5.VirtualTarget(outfile, outkey, shape=(len(file_names_to_concatenate,) + sh) 

for i in range(num_projections): 
    VSRC = h5.VirtualSource(file_names_to_concatenate[i]), entry_key, shape=sh) 
    VM = h5.VirtualMap(VSRC[:,:,:], TGT[i:(i+1):1,:,:,:],dtype=np.float) 
    VMlist.append(VM) 

d = f.create_virtual_dataset(VMlist=VMlist,fillvalue=0) 
f.close() 
+0

感謝をサポートしていないようだが、それはh5pyの正式版ではないと私はそれがそのブランチで作業することができませんでした。あなたはそれを試しましたか?それはあなたのために働いたのですか? –

+1

申し訳ありませんが、私は試しましたが失敗しました。それに応じて私の答えを更新。 – kakk11

関連する問題