Этот вопрос похож на 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?
Спасибо.