假设我们将模型保存为h5,那么我们可以使用keras的load_model函数加载模型。 我浏览了多个 github 链接,其中作者提供了权重文件(.h5 或 .hdf5 文件)。
那么我们可以使用 load_model 来使用那些预训练的权重/模型吗?
load_model 和 load_weights 有什么区别?
我可以使用 load_model (keras) 加载权重文件还是应该使用 (load_weight)。如果我们正在加载重量,那么我们还必须加载模型的整个架构..
请举一些例子来提供更深入的理解..
定义模型
model = ...
训练模型
model.fit(...)
保存模型:
model.save('model_topology.h5')
保存权重:
model.save_weights('weights.h5')
调用load_model()时,如果要进行推理,则必须调用loadweights来加载预训练的权重。
model = load_model('model_topology.h5')
model.load_weights('weights.h5')
处理以 HDF5 格式 (.h5) 保存的模型时确实如此。
Tensorflow
提供了另一种保存模型的格式:saved_model
格式。
save_model 格式将模型拓扑(图)和训练参数(权重和偏差)保存在目录中。这样就可以使用一个命令加载模型。
model = tf.saved_model.load(path_to_dir)
关于
h5
和HDF5
:
h5
只是以 HDF5 格式保存的文件的缩写扩展名。