Keras - Общие слои со вспомогательным входом - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать следующую модель, где все слои являются общими. Как я могу сделать это с помощью функционального API?

Должен сказать, что я немного озадачен тем, как все это работает.

enter image description here

Вот что я написал до сих пор

    s_im = keras.layers.Input(shape=s_im_dim, name='s_im')
    s_aux = keras.layers.Input(shape=(s_aux_dim,), name='s_aux')
    s_im0 = keras.layers.Input(shape=s_im_dim, name='s_im0')
    s_aux0 = keras.layers.Input(shape=(s_aux_dim,), name='s_aux0')
    s_im1 = keras.layers.Input(shape=s_im_dim, name='s_im1')
    s_aux1 = keras.layers.Input(shape=(s_aux_dim,), name='s_aux1')

    shared_layer = keras.layers.Conv2D(32, kernel_size=(8, 8), strides=(4, 4))(s_im)
    shared_layer = keras.layers.Conv2D(64, kernel_size=(4, 4), strides=(2, 2))(shared_layer)
    shared_layer = keras.layers.Flatten()(shared_layer)
    s_out = keras.layers.Dense(128)(shared_layer)

    concat = keras.layers.concatenate([s_out, s_aux])
    f = keras.layers.Dense(256, name='features')(concat)

И это так далеко, как я получил.

Что мне нужно сделать сейчас, чтобы получить доступ к выходам (f (s0) и f (s1)) и обучить сеть, используя эти два значения?

Я попробовал следующее, но я получил сообщение о том, что график отключен

model_s0 = keras.Model(inputs=[s_im0, s_aux0], outputs=[f])

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...