HDF 5ファイルの探索(一般接尾辞.h 5のファイル)


最近luaに関するコードを見て他の人が使っているデータセットを見たのは.h 5ファイルは、kerasで保存されている重みなどの変数だと思っていましたが、実は.h 5(HDF 5,hierarchical data format,5)は、pythonの辞書に相当するデータファイルフォーマットである.例えば、h 5ファイルを開いてファイルのプライマリ・キーを表示するときに2つの部分に分けられ、一部は「data」、一部は「labels」と呼ばれ、このh 5ファイルは辞書に相当し、「data」部分はデータを格納する.「labels」部分にデータを格納するラベル.
例えば、CMU-PIEを読み出す.h 5ファイル(データセットの問題については、よくあるデータセットはGitHubで見つけることができます)
データセットが現在のディレクトリにあると仮定し、pythonに入ります.
import h5py

>>>file = h5py.File('CMU-PIE.h5','r')
#   keys()         ,     h5       :
>>>file.keys()
[u'data',u'labels'] #                ,    ‘data’,    ‘labels’
>>>
>>>data = file['data'] #     
>>>data.shape
(2856,1,32,32) # 1    ,     channel_first,             channel_last
>>>labels = file['labels'] #     
>>>labels.shape
(2856,)

USPSデータセットのh 5ファイルについて:まず「train」と「test」の2つの部分に分けて、それからそれぞれ「data」と「target」の2つの部分に分けます
import h5py
with h5py.File(path, 'r') as hf:
        train = hf.get('train')
        X_tr = train.get('data')[:]
        y_tr = train.get('target')[:]
        test = hf.get('test')
        X_te = test.get('data')[:]
        y_te = test.get('target')[:]