Инвертирование нейронной сети автокодировщика
Есть такой код автокодировщика
input_img = Input(shape=(28, 28, 1))
x = Flatten()(input_img)
x = Dense(128, activation='relu')(x)
x = Dense(64, activation='relu')(x)
encoded = Dense(2, activation='linear')(x)
input_enc = Input(shape=(2,))
d = Dense(64, activation='relu')(input_enc)
d = Dense(28*28, activation='sigmoid')(d)
decoded = Reshape((28, 28, 1))(d)
encoder = keras.Model(input_img, encoded, name="encoder")
decoder = keras.Model(input_enc, decoded, name="decoder")
autoencoder = keras.Model(input_img, decoder(encoder(input_img)), name="autoencoder") Как автоматически построить обратный автокодировщик с теми же параметрами сети?
Я могу конечно руками записать но мне нужно налету делать
что такое обратный автокодировщик?
я имею ввиду как сеть с обратным распространением, по архитектуре они должны быть одинаковы но распространение (ошибки) обратное
точнее архитектуры симметричны должны быть
это вообще сложно объяснить для чего это я это делаю первый раз такое. Но что если сделать процесс обучения автокодировщика в два шага. На первом шаге обучение прямого распространения, а на втором шаге архитектура меняется на обратную и снова обучается. И так по кругу. На вход и выход для обучения подается одно и то же
то есть в инвертированную нейросеть мне нужно перенести помимо зеркальной архитектуры еще и веса полученные на предыдущем шаге
точнее энкодер наверное не нужен а декодер можно использовать для генерации
меня в этом плане сейчас архитектура VAE+GAN заинтересовала