Я строю очень маленькую последовательную модель с помощью tf.keras для классификации текста следующим образом:
model = tf.keras.Sequential([
embedding_layer,
tf.keras.layers.Conv1D(64, 5, activation='relu', name="conv1d"),
tf.keras.layers.MaxPool1D(pool_size=4, name="maxpool1d"),
tf.keras.layers.Flatten(name="flatten"),
tf.keras.layers.Dense(1, activation='sigmoid', name="dense")
])
Layer (type) Output Shape Param #
=================================================================
inputs (InputLayer) [(None, 2762)] 0
_________________________________________________________________
embedding (Embedding) (None, 2762, 50) 1893250
_________________________________________________________________
conv1d (Conv1D) (None, 2758, 64) 16064
_________________________________________________________________
maxpool1d (MaxPooling1D) (None, 689, 64) 0
_________________________________________________________________
flatten (Flatten) (None, 44096) 0
_________________________________________________________________
dense (Dense) (None, 1) 44097
=================================================================
Во время тестирования для данного предложения на входе я хотел бы найти окно словэто наиболее полезно для прогнозирования.Я предполагаю, что мне нужно посмотреть выходные данные слоя conv1d или максимального пула, но я не уверен, что я ищу.Я думаю, что это как-то связано с наивысшими активациями определенных слоев.
Я уже знаю, что могу получить доступ к выходным значениям данного слоя с помощью следующих строк кода:
intermediate_layer_model = tf.keras.Model(inputs=model.input, outputs=model.get_layer(name="flatten").output)
intermediate_output = intermediate_layer_model.predict(x=test_input, workers=1, use_multiprocessing=False)