因为 OpenVINO 不支持 Keras 的 .h5 模型啊!!! .h5 模型转 .pb 又挺麻烦,各种报错,最后还不一定能加载成功。
那就从根源解决问题,训练直接生成 .pb 吧。
checkpointer = ModelCheckpoint(filepath='gesture_ceshi_Reset50_model.h5', /
monitor='val_accuracy', verbose=1, /
save_best_only=True, mode='max')
r50_finetune.save('model.h5')
# r50_finetune 是自己构建的 model
上面第一个是在 checkpointer 中定义模型保存名称。第二种是训练结束后保存模型。
tf.keras.models.save_model(r50_finetune,"model_save_path")
# r50_finetune 是自己构建的 model
此种方式会在训练结束后,生成一个 model_save_path 的文件夹。里面包含了 Tensorflow 样式的 模型,其中包含 .bp 模型文件。
加载时也是方便的,跟 .h5 一样的加载方式,如下所示:
model = tensorflow.keras.models.load_model('gesture_best_Reset50_model.h5')
# 加载 .h5 模型文件
model = tensorflow.keras.models.load_model('model_save_path')
# 加载 Tensorflow 格式的 模型文件
加载 Tensorflow 格式的模型文件,只需要加载训练时保存的文件夹就OK
其实,不想训练的可以直接拿 .h5 模型转 .pb 模型,如下所示:哈哈哈哈哈哈
model_path = "keras_model.h5"
model = tf.keras.models.load_model(model_path)
model.save("tfmodel_save", save_format = "tf")
Good Bye ~~~