Keras 如何利用单损耗函数并行训练非共享自动编码器网络

Keras 如何利用单损耗函数并行训练非共享自动编码器网络,keras,neural-network,conv-neural-network,autoencoder,deconvolution,Keras,Neural Network,Conv Neural Network,Autoencoder,Deconvolution,一起训练两个非共享的神经网络 我有两个不同的自动编码器网络,一个用于摄像机图像,它获取一个输入图像,并尝试使用转置卷积方法再现相同的图像。第二个网络获取草图图像并执行相同的操作。两个网络具有相同的结构,但学习不同的过滤器 autoencoder_p = Model(input_img, decoder_p(encoder_p(input_img))) autoencoder_s = Model(input_img, decoder_s(encoder_s(input_img))) autoen

一起训练两个非共享的神经网络

我有两个不同的自动编码器网络,一个用于摄像机图像,它获取一个输入图像,并尝试使用转置卷积方法再现相同的图像。第二个网络获取草图图像并执行相同的操作。两个网络具有相同的结构,但学习不同的过滤器

autoencoder_p = Model(input_img, decoder_p(encoder_p(input_img)))
autoencoder_s = Model(input_img, decoder_s(encoder_s(input_img)))

autoencoder_p.compile(optimizer='adam', loss='mse', metrics=['accuracy'])
autoencoder_p.fit(X_train_real, X_train_real, epochs=10, batch_size=1, validation_split=0.1)

autoencoder_s.compile(optimizer='adam', loss='mse', metrics=['accuracy'])
autoencoder_s.fit(X_train_sim, X_train_sim, epochs=10, batch_size=1, validation_split=0.1)

问题是我必须一个接一个地编译和训练这两个网络。是否有任何可能的方法将两个网络一起编译和训练。因为两个网络是相同的,并且使用相同的损耗和训练策略。

制作一个包含这两个网络的单一模型

警告:您的代码似乎对两者使用了相同的输入图像,这与您描述的不同。有两个输入
input\u img\u p
input\u img\u s


谢谢@daniel指出这一点。它工作得很好。非常感谢。
twin_model = Model([input_img_p, input_img,_s],
                   [
                       decoder_p(encoder_p(input_img_p)),
                       decoder_s(encoder_p(input_img_s)),                             
                   ])

twin_model.compile(optimizer='adam', loss='mse', metrics=['accuracy'])
twin_model.fit([X_train_real, X_train_sim], [X_train_real, X_train_sim], ...)