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 自定义层(推理错误)