Python 如何保存暹罗模型的基础网络?

Python 如何保存暹罗模型的基础网络?,python,tensorflow,keras,deep-learning,siamese-network,Python,Tensorflow,Keras,Deep Learning,Siamese Network,我正试图建立一个有着相当复杂基础网络的暹罗模型。构建基础网络后,我使用以下代码构建暹罗网络: base_network=create_base_model(0.2) img1=Input(shape=(256,256,3)) img2=Input(shape=(256,256,3)) text_input1 = Input(shape=(), dtype=tf.string, name='text_1') text_input2 = Input(shape=(), dtype=tf.string

我正试图建立一个有着相当复杂基础网络的暹罗模型。构建基础网络后,我使用以下代码构建暹罗网络:

base_network=create_base_model(0.2)
img1=Input(shape=(256,256,3))
img2=Input(shape=(256,256,3))
text_input1 = Input(shape=(), dtype=tf.string, name='text_1')
text_input2 = Input(shape=(), dtype=tf.string, name='text_2')
output1= base_network([img1, text_input1])
output2= base_network([img2, text_input2])
distance = Lambda(euclidean_distance)([output1, output2])
siamese_model = Model([[img1,text_input1], [img2, text_input2]], distance)
基本网络的输出形式为
model
where

model=Model(inputs=[input1,input2], outputs=[z])
问题是,在训练暹罗网络之后,我想使用基本网络的输出作为嵌入,以便运行无监督学习算法。然而,在训练暹罗网络时,我想一次训练10个时代,然后保存它,如果需要继续训练在这种情况下,我不确定在保存和重新加载暹罗模型时如何保存/访问基本网络。例如,我得到暹罗模型的下图,该图需要2个输入(我的基本模型使用2个输入,因此技术上我有4个输入,如图所示),但是我想使用基本模型,它只需要1个输入岗位培训(技术上是2,因为我的基本模型使用2)

有谁能给我一些建议,告诉我如何使用保存的暹罗模型加载更新后的基础模型,或者是否有更好的方法首先保存它

非常感谢

如果历元%5==0
path=f'/tmp/model{epoch}.h5'
基本网络。保存(路径)
基本网络=tf.keras.models.load\u模型(路径)

这不好吗?

嗨!谢谢你的回复。我想我可以这样保存基本模型,但问题是我使用回调在最佳时间保存模型-例如,如果我使用提前停止。在这种情况下,我如何要求Keras保存基本模型而不仅仅是暹罗模型(model.fit用于暹罗模型)?我更新了代码,这是我能想到的。