2017-10-05 122 views
0

here下載vgg16_weights。我想將layer_1的param_0保存爲numpy數組。我使用下面的代碼:從h5文件中讀取數據

with h5py.File('vgg16_weights.h5', 'r') as f: 
    my_array = f['layer_1/param_0'] 

當我寫印刷(my_array),輸出爲:Closed HDF5 dataset並沒有什麼表示。如何獲得所需的數組。

回答

1

您的變量my_array不是實際數據,而是指向數據集的文件指針(類似於p=open(filename,'r')中的p)。

你有兩個選擇:

一)讓你打開文件

with h5py.File('vgg16_weights.h5', 'r') as f: 
    my_array = f['layer_1/param_0'] 
    print(my_array) 

B)將數據讀入一個數組:

with h5py.File('vgg16_weights.h5', 'r') as f: 
    my_array = f['layer_1/param_0'] 
    actual_array = my_array[:] 
print(actual_array) 

[:]告訴H5文件的讀取所有的數據輸入到新變量中。一旦進入你的變量,你可以使用它作爲一個常規變量

+0

偉大的,這對我有用 – Hitesh