从here下载了vgg16_weights。我想将layer_1的param_0保存为numpy数组。我使用以下代码:
with h5py.File('vgg16_weights.h5', 'r') as f:
my_array = f['layer_1/param_0']
当我写print(my_array)时,输出为:Closed HDF5 dataset
并且没有显示任何内容。如何获得所需的阵列。
答案 0 :(得分:1)
您的变量my_array
不是实际数据,而是指向数据集的文件指针(类似于p
中的p=open(filename,'r')
)。
您有两种选择:
a)让你打开文件
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文件将所有数据读入新变量。进入变量后,您可以将其用作常规变量