0

根据演示代码

“使用具有对比损失的 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 中需要完成一些额外的工作

任何人都可以帮助提供保存和加载模型部分以使此演示代码更加完整,这将是非常好的谢谢!

4

1 回答 1

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

于 2021-12-21T10:06:10.103 回答