我正试图建立一个具有相当复杂的基础网络的暹罗模式。在构建基本网络之后,我使用以下代码构建我的暹罗网络:
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格式,其中
model=Model(inputs=[input1,input2], outputs=[z])问题是,经过训练后的暹罗网络,我想使用输出的基础网络作为嵌入,以便我可以运行无监督的学习算法。然而,当我训练暹罗网络时,我想一次训练它10个时期,然后保存它,如果需要的话继续训练。在这个场景中,当我保存和重新加载暹罗模型时,我不知道如何保存/访问基本网络。例如,我得到了需要2个输入的暹罗模型的下面的情节(我的基本模型使用2个输入,所以在技术上我有4个输入,如图所示),但我想使用基本模型,它只需要1个输入后训练(技术上是2,因为我的基本模型使用2)。
有人能给我建议如何加载更新的基础模型使用保存的暹罗模型,或者如果有一个更好的方法保存它在第一?
非常感谢。

发布于 2021-04-29 03:17:55
if epoch %5 == 0
path = f'/tmp/model{epoch}.h5'
base_network.save(path)
base_network = tf.keras.models.load_model(path)这样不可以吗?
https://stackoverflow.com/questions/67308070
复制相似问题