我一直在努力从h5文件中提取卷积层信息,其中包括神经网络模型。我已经能够提取有关h5文件中卷积层数的信息,但是我看不到获取有关步幅大小或填充的信息的方法。我一直在用h5py读取h5模型。
这是我用来在h5中查找卷积层数和权重矩阵的代码
f = h5py.File(weight_file_path)
layers_counter=0
if len(f.attrs.items()):
print("{} contains: ".format(weight_file_path))
print("Root attributes:")
for layer, g in f.items():
print(" {}".format(layer))
print(" Attributes:")
for key, value in g.attrs.items():
print(" {}: {}".format(key, value))
print(" Dataset:")
for p_name in g.keys():
param = g[p_name]
matrix=param.value #It will be weights matrix
matrix_size=a.shape #It is matrix size
if len(matrix_size)>3:
layers_counter=layers_counter+1
执行后,layers_counter
将具有卷积层数。
答案 0 :(得分:1)
模型配置作为JSON存储为HDF5文件中的根数据集的属性,您可以使用以下代码获取它:
import h5py
import json
model_h5 = h5py.File(filename, 'r')
model_config = model_h5["/"].attrs["model_config"]
config_dict = json.loads(model_config)
然后,您可以索引到config_dict
中以获得所需的配置参数,例如,第一卷积层的config_dict["config"]["layers"][1]["config"]["strides"]
。