keras 演示代码 siamese_contrastive.py 保存和加载模型?

Posted

技术标签:

【中文标题】keras 演示代码 siamese_contrastive.py 保存和加载模型?【英文标题】:keras demo code siamese_contrastive.py save and load model? 【发布时间】:2021-12-04 20:35:07 【问题描述】:

根据演示代码

“使用具有对比损失的 Siamese 网络进行图像相似性估计” https://keras.io/examples/vision/siamese_contrastive/

我正在尝试通过 model.save 将模型保存到 h5 或 hdf5;但是,在我使用 load_model 之后(甚至尝试了 load_weights) 它显示错误消息:未知操作码

已经完成了谷歌搜索,这一切都告诉我这是 py3.5~py3.6 之间的 python 版本问题 但实际上我只使用 python 3.8 .... 其他信息说在模型构建或 load_model 中需要完成一些额外的工作

任何人都可以帮助提供保存和加载模型部分 使这个演示代码更加完整 谢谢!!

【问题讨论】:

【参考方案1】:

实际上,他们在这里使用了自定义对象中的两个单独因素。

自定义对象:

对比损失

嵌入层:我们在其中找到 euclidean_distance。

保存模型: 对于保存模型,很简单

<model_name>.save("siamese_contrastive.h5")

加载模型: 在这里好的部分将出现模型不会直接在这里加载,因为它不了解两件事,一是您的自定义层,二是您的损失。

model = tf.keras.models.load_model('siamese_contrastive.h5', custom_objects= )

在上面提到的自定义对象中,你必须提供这两个对象的定义。

之后,它将接受您的模型,并在推理时单独运行。

还在想办法吗??

看看我的实现,如果您还有任何问题,请告诉我:https://github.com/anukash/Keras_siamese_contrastive

【讨论】:

以上是关于keras 演示代码 siamese_contrastive.py 保存和加载模型?的主要内容,如果未能解决你的问题,请参考以下文章

计算机视觉案例:应用opencv+keras完成视频物体检测

model.predict 不适用于 Keras 自定义层(推理错误)

Keras 神经网络和 SKlearn SVM.SVC

Keras 数据预处理文本转换为向量&文本预处理(超详解)

用Python/Keras/Flask/Docker在Kubernetes上部署深度学习模型

机器学习入门实验——以图搜图( 基于vgg网络和Keras深度学习框架)