如何使用单一损失函数并行训练非共享自动编码器网络
How to train non-shared autoencoder networks parallelly using single loss function
一起训练两个非共享神经网络。
我有两个不同的自动编码器网络,一个用于相机图像,它获取输入图像并尝试使用转置卷积方法再现同一图像。第二个网络获取素描图像并做同样的事情。两个网络具有相同的结构,但学习不同的过滤器。
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)
问题是我必须一个接一个地编译和训练两个网络。是否有任何可能的方法来一起编译和训练两个网络。因为两个网络是相同的并且使用相同的损失和训练策略。
制作一个包含两者的模型。
Warning: your code seems to be using the same input image for both, which is not what you describe. Have two inputs input_img_p
and input_img_s
.
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], ...)
一起训练两个非共享神经网络。
我有两个不同的自动编码器网络,一个用于相机图像,它获取输入图像并尝试使用转置卷积方法再现同一图像。第二个网络获取素描图像并做同样的事情。两个网络具有相同的结构,但学习不同的过滤器。
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)
问题是我必须一个接一个地编译和训练两个网络。是否有任何可能的方法来一起编译和训练两个网络。因为两个网络是相同的并且使用相同的损失和训练策略。
制作一个包含两者的模型。
Warning: your code seems to be using the same input image for both, which is not what you describe. Have two inputs
input_img_p
andinput_img_s
.
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], ...)