Есть ли способ использовать выход данного (среднего) слоя в Keras как вход другой сети? - PullRequest
0 голосов
/ 26 сентября 2018

Есть ли способ использовать выход данного (среднего) слоя в Keras как вход другой сети?

Например, использовать последний плотный слой кодера здесь как вход для другой сети?

#encoder
encoder = keras.models.Sequential()
encoder.add(L.InputLayer(img_shape))
encoder.add(L.Conv2D(32, kernel_size=(3, 3),strides=1, padding='same', activation='elu'))
encoder.add(L.MaxPool2D(pool_size=(2, 2)))
encoder.add(L.Conv2D(64, kernel_size=(3, 3),strides=1, padding='same', activation='elu'))
encoder.add(L.MaxPool2D(pool_size=(2, 2)))
encoder.add(L.Conv2D(128, kernel_size=(3, 3),strides=1, padding='same', activation='elu'))
encoder.add(L.MaxPool2D(pool_size=(2, 2)))
encoder.add(L.Conv2D(256, kernel_size=(3, 3),strides=1, padding='same', activation='elu'))
encoder.add(L.MaxPool2D(pool_size=(2, 2)))
encoder.add(L.Flatten())
encoder.add(L.Dense(code_size))


    # decoder
decoder = keras.models.Sequential()
decoder.add(L.InputLayer((code_size,)))
decoder.add(L.Dense(147456))
decoder.add(L.Reshape((24, 24, 256)))
decoder.add(L.Conv2DTranspose(filters=128, kernel_size=(3, 3), strides=2, activation='elu', padding='same'))
decoder.add(L.Conv2DTranspose(filters=64, kernel_size=(3, 3), strides=2, activation='elu', padding='same'))
decoder.add(L.Conv2DTranspose(filters=32, kernel_size=(3, 3), strides=2, activation='elu', padding='same'))
decoder.add(L.Conv2DTranspose(filters=1, kernel_size=(3, 3), strides=2, activation=None, padding='same'))

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы пробовали использовать это

decoder = keras.models.Sequential()(encoder)
0 голосов
/ 26 сентября 2018

Если вы просто хотите использовать слои кодирования вашей сети в качестве входа (т.е. вы не хотите изменять вес вашей сети кодировщика посредством обратного распространения при обучении остальной части вашей модели) выВы можете просто получить выходные данные последнего слоя вашей сети декодеров, используя метод predict_generator на вашей модели keras, для всех ваших примеров и использовать его в качестве входных данных для вашей сети предикторов.

...