Получите выходные данные вложенной промежуточной модели, обернутой слоем TimeDistributed - PullRequest
1 голос
/ 26 февраля 2020

Этот вопрос похож на https://datascience.stackexchange.com/questions/19362/how-to-obtain-output-of-intermediate-model-in-keras

Я создаю нейронную архитектуру с использованием функционального API следующим образом:

input1 = Input(shape=(50, embed_dim))

dense_layer = Dense(embed_dim, activation='tanh')(input1)
softmax_layer = Activation('softmax', name='attention')(dense_layer)

attention_mul = multiply([softmax_layer,input1])
vec_sum = Lambda(lambda x: K.sum(x, axis=1))(attention_mul)

# Nested (Intermediate Model)
pre_model1 = Model(input1, vec_sum, name='news_attention')

input2 = Input(shape=(1, 50, embed_dim))
pre_cnn = TimeDistributed(pre_model1)(input2)
cnn = Conv1D(filters = 100, 
          kernel_size = 3, 
          padding = 'same',
          activation = 'relu')(pre_cnn)
flatten = Flatten()(cnn)
dropout = Dropout(0.5)(flatten)
final = Dense(hidden_dims, activation="relu")(dropout)

model = Model(input2, final)

Теперь я хочу получить доступ к выходу «softmax_layer», который является слоем во вложенной модели, pre_model1 . Я пытался следовать решению в стек обмена данными . Однако я не смог получить вложенный объект модели ( pre_model1 ) в сводке модели, как было сказано.

model.summary ()

архитектура модели

Как получить вложенный объект модели, который обернут TimeDistributedLayer?

Спасибо.

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