.h5 和 .hdf5 格式有什么区别?

use*_*845 -3 python deep-learning keras tensorflow pre-trained-model

假设我们将模型保存为 h5,那么我们可以使用 keras 的 load_model 函数加载模型。我浏览了多个 github 链接,其中作者提供了权重文件(.h5 或 .hdf5 文件)。

那么我们可以使用 load_model 来使用那些预训练的权重/模型吗?

load_model 和 load_weights 之间有什么区别?

我可以使用 load_model (keras) 加载权重文件还是应该使用 (load_weight)。如果我们正在加载重量,那么我们还必须加载模型的整个架构。

请通过举一些例子来提供更深入的理解。

YSc*_*arf 5

定义模型

model = ...
Run Code Online (Sandbox Code Playgroud)

训练模型

model.fit...
Run Code Online (Sandbox Code Playgroud)

保存模型:

model.save('model_topology.h5) 
Run Code Online (Sandbox Code Playgroud)

保存权重:

model.save_weights(`weights.h5`)
Run Code Online (Sandbox Code Playgroud)

当调用load_model()时,如果你想运行推理,你必须调用loadweights来加载预训练的权重。

model = load_model('model_toplogy.h5)
model.load_weights('weights.h5)
Run Code Online (Sandbox Code Playgroud)

处理以 HDF5 格式 (.h5) 保存的模型时确实如此。

Tensorflow提供了另一种保存模型的格式:saved_modelformat。save_model 格式将模型拓扑(图)和训练参数(权重和偏差)保存在目录中。这样就可以使用一个命令加载模型。

model = tf.saved_model.load(path_to_dir)

关于h5HDF5h5只是以 HDF5 格式保存的文件的缩写扩展名。